我试图从两个列表中获取常见电子邮件。但我的查询永远不会返回任何值。
List<string> list1=new List<string>();
list1.Add("abc@gmail.com");
list1.Add("abc@hotmail.com");
List<string> list2=new List<string>();
list2.Add("abc@gmail.com");
var tempList = list1.Join(list2, x => x, y=> y, (x,y) => x).Select(x => x);
但是当我将列表更改为对象类型时,它的开始返回结果。
List<Email> list1=new List<Email>();
list1.Add(new Email {Address = "abc@gmail.com"});
list1.Add(new Email {Address = "abc@hotmail.com"});
List<Email> list2=new List<Email>();
list2.Add(new Email {Address = "abc@hotmail.com"});
var tempList = list1.Join(list2, x => x.Address, y=> y.Address, (x,y) => x).Select(x => x);
现在此查询返回结果。 我在这里做错了什么?或者还有其他一些我不知道的行为。以下linq表达式也正常。
var result2 = from item1 in list1
join item2 in list2
on item1 equals item2
select new { item1 };