1

私はこれにラムダを使おうとしています:

var y = from r in rs.Returns from z in r.Tags where z.Name.Contains(c) select r;

試しvar r = rs.Returns.Where(x=>x.Tags.Where(x=>x.Name.Contains(c)));ましたが、うまくいきませんでした。正しいラムダは何ですか?使用する必要はありませんyz

4

1 に答える 1

7

SelectMany2番目の「from」句を翻訳する必要があります。

var y = rs.Returns
          .SelectMany(r => r.Tags, (r, z) => new { r, z })
          .Where(pair => pair.z.Name.Contains(c))
          .Select(pair => pair.r);

それはかなり直訳です。別の代替手段は、以下を使用することです。

var y = rs.Returns.Where(r => r.Tags.Any(z => z.Name.Contains(c)));
于 2012-04-26T18:55:58.143 に答える