我有号码的列表上对象名单,结果如下图所示:的LINQ查询基于另一个列表
1) List<long> list1 : 101, 102, 103
而且我有对象的列表,其中一个属性就是长:
2) List<SomeObject> list2:
SomeObject[0]- (long)Id : 101,
Name: Adam,
Address:xxx
SomeObject[1]- (long)Id : 102,
Name: Bran,
Address:xxx
SomeObject[2]- (long)Id : 109,
Name: Queen,
Address:yyy
我想查询第二个列表,如果它有Id的列表1中存在。这意味着我应该得到包含列表:
SomeObject[0]
SomeObject[1]
尝试下面没有成功的代码:提前
(from t2 in list2
where list1 .Any(t => t2.Id.Contains(t)) == true
select t2);
感谢。
也许你也可以解释为什么OP的做法没有奏效。毕竟,他确实使用过“Contain”。 – Lumen
@TimSchmelter't'也是一个'long',但他不会为't'检查'Id'。他检查'Id'是否为't2',即'SomeObject'具有'Id'。 –