ある配列の要素を別の配列の要素と一致させるラムダ式を作成しようとしています。以下は、このクエリの簡略化されたバージョンです。
class Program
{
static void Main(string[] args)
{
string[] listOne = new string[] { "test1", "test2", "test3" };
MyClass[] listTwo = new MyClass[] { new MyClass("test1") };
string[] newVals = listOne.Where(p => listTwo.Select(e => e.Name).Equals(p)).ToArray();
//string[] newVals2 = listOne.Intersect(listTwo.Select(t => t.Name)).ToArray();
}
class MyClass
{
public MyClass(string name)
{
Name = name;
}
public string Name {get; set;}
}
}
1つの値の配列を返すことを期待newVals
しますが、それは空です。myVals2のコメントを外しても同じ結果が得られることはわかっていますが、クラスのリストは表示されているものよりも根本的に異なります。