5

Linq を使用してオブジェクトを作成し、他の 2 つのリストをフィルタリングしてリストを取得する方法があるかどうかを知りたかったのです。オブジェクト A と B の 2 つのリストがあり、属性 (コード:文字列) によって互いに関連付けられています。B には別の属性 Name:String があります。

2つの条件を満たす A オブジェクトのリストを取得したい。

- すべての A オブジェクトは、その A.Code 属性が B リスト内の B.Code 属性のいずれかに一致する必要があります。

-B.Name must be = "yoda";

このコード(および別の例)を試してみましたが、うまくいかないようで、理由がわかりません。私はlinQを始めたばかりです。

List<A> FilteredAList = (from OneA in ListOfA
                         join  OneB in ListOfB
                         on OneA.Code equals OneB.Code
                         where OneB.Name == "yoda"
                         select  OneA).ToList<A>();

前もって感謝します!。

4

1 に答える 1

5

あなたの要件では、メソッドを使用する必要があると思います。Anyしたがって、method querynotと記述する必要がありexpression queryます。もちろん、私はAnyinに相当するものを知りませんexpression query(少なくともin のように短くmethod queryする必要があります。そうでない場合は良くありません)。どなたかご存知の方がいらっしゃいましたらコメントお願いします。ありがとうございます。

var FilteredAList = ListOfA.Where(x=>ListOfB.Any(y=>x.Code==y.Code && y.Name=="yoda"))
                           .ToList<A>();
于 2013-08-12T00:20:12.007 に答える