0

私は IGrouping 構造を持っています

IGrouping<TierRequest,PingtreeNode>

PingtreeNode には、Response のプロパティが含まれており、これにはさらにプロパティ Result があります。

    public class PingtreeNode
    {
        public ResponseAdapter Response { get; set;}
        // ... more properties
    }

    public class ResponseAdapter
    {
        public int Result { get; set; }
        // ... more properties
    }

私がやりたいことは、PingtreeNode に Result == 2 のノードが含まれているかどうかを確認することです。答えに SelectMany が含まれていることはわかっていますが、正しい構文を取得するのに苦労しています。

誰か助けて?

4

2 に答える 2

0

結果として、条件を満たす PingTreeNode のコレクションが必要であると仮定すると、これでうまくいくはずです。

var query = yourstruct.SelectMany(x=>x)
  .Where(x => x.Response.Result == 2);
于 2013-09-02T19:58:33.457 に答える
0

チェックしないといけないので

PingtreeNodeを持つノードが含まれているかどうかResult == 2

私はAny方法を使用します:

IGrouping<TierRequest,PingtreeNode> source;

bool anyResultIs2 = source.SelectMany(x => x)
                          .Any(x => x.Response.Result == 2);

なしでも実行できSelectManyます。

bool anyResultId2 = source.Any(g => g.Any(x => x.Response.Result == 2));

SelectManyまた、とはどちらAnyも遅延 (一度に 1 つの要素のみを返し、結果が決定されるとすぐに実行を終了する) であるため、両方のアプローチのパフォーマンスは似ているはずです。

于 2013-09-02T20:24:31.040 に答える