私はラムダ式を使用してクエリをフィルタリングしています。C#ラムダ式が期待した結果を返さない
基本的には、セグメントで構成される行があり、これらのセグメントは削除済み、挿入済み、またはnullとしてマークされています。
返されたいセグメントは、削除済みとしてマークされていますが、兄弟は削除済みとしてマークされていません。例として、
Line: "Soylent Green is people!" Broken into 2 segments...
Segment 1: "Soylent Green " (marked as deleted)
Segment 2: "is people!" (not marked as deleted)
は私にセグメント1しかし、次の例を返す必要があり、
Line: "Open the pod bay doors Hal!" Broken into 3 segments...
Segment 1: "Open the " (marked as deleted)
Segment 2: "pod bay " (marked as deleted)
Segment 3: "doors Hal!" (marked as deleted)
は、任意のセグメントを返すべきではありません。以下のコードを参照してください:
return seg => seg.ModType == Deleted &&
seg.Line.Segments.Any(segs => segs.ID != seg.ID &&
segs.ModType != Deleted);
おかげで、私はなぜこれが動作していないと、任意のヘルプや提案を感謝しています。
本当に教えてくれていますか?ここで「ID」は何ですか?この問題を実証するために、短いが完全な*プログラムを提供してください。私たちはそれを再現できるとすぐに問題を簡単に見つけ出すだろうと私は思っています。私は、「seg」と「segs」が混乱のレシピであることを示唆しています。 –
Line.Segmentsコレクションが正しいことは確かですか? – womp
問題を再現するためにコンパイルして実行できる完全で短いプログラムを投稿してください。これは、希望の結果を得るためにデバッグや調整ができるコードを私たちに与えることによって、私たちを助けるのに役立ちます。 –