タイプ のオブジェクトのリストがありますA
。各オブジェクトにはName
プロパティがあります。同じ名前のオブジェクトと一致させるためにこれを使用したいプロパティB
も持っているタイプのオブジェクトがあります。Name
B.Name
List<A>
List.Where
これは、カスタム述語を使用して可能ですか?
はい、あなたの要求の微妙な点を見逃していない限り:
var filtered = listOfAs.Where(a => a.Name == b.Name);
もちろん:
myListOfAs.Where(a=>a.Name == myB.Name);
これは、特定の B インスタンス myB と同じ名前を持つ myListOfAs の 0 個以上の要素の IEnumerable を返します。
Join() を使用して、2 番目のリスト内の複数の B を As のリストから一致する名前を持つ要素と一致させることもできますが、それはあなたがしようとしていることのようには聞こえません。
あなたが何を求めているのか理解できれば、参加したいだけだと思います。これは、クエリ構文で行うのが最も簡単です。
var results = from a in ListA
join b in ListB on a.Name equals b.Name
select { whatever you need from a and b };