测试Linq查询是否返回值
本文关键字:返回值 是否 查询 Linq 测试 | 更新日期: 2023-09-27 18:24:48
我有一个小问题。我有一个返回List的属性,我想对它进行linq查询,以测试我是否与另一个对象匹配。
我不太清楚,所以这是我的代码。
我第一次尝试这个:
if ((from item in MyList where item.Keys == myObject.Keys select item).Any())
//Some stuff
但没有结果。所以我尝试了这个:
if (MyList.Where(item => item.Keys == myObject.Keys).Any())
//Some stuff
没有更多的结果。。。
我不明白问题出在哪里。哦,是的,在提问之前:是的,我确信我的列表和我的对象是匹配的;)
编辑:我也尝试使用.Equals()
而不是==
您需要使用SequenceEqual
来比较枚举值:
if (MyList.Where(item => item.Keys.SequenceEqual(myObject.Keys)).Any())
检查:
if(MyList.Any(item => item.Keys.SequenceEqual(myObject.Keys))) {
}
或
if(MyList.Any(item => item.Keys.Length == myObject.Keys.Length
&& item.Keys.Intersect(myObject.Keys).Count() == item.Keys.Length)) {
}
不能将List类型的不同对象的属性与==
或Equals()
进行比较。
试试这个:
if ((from item in MyList where myObject.Contains(item) select item).Any())