我有一个LINQ查询,如果条件对该索引处的特定项目满意,我需要返回true
或false
的列表。
dataList = {100, 40, 10, 200};
var res = dataList.Select((item, index) => new { item, index }).Any(x => x.item > 50).ToList();
上述方法的问题是我无法在最后添加ToList()。如果没有它,它只返回真或假,而我想要一个bool列表。
预期输出 - {true,false,false,true}
答案 0 :(得分:5)
您的方法中有许多不需要的代码 只需测试Select枚举的序列中的当前元素是否大于50,就不需要使用Index的重载。
如果您只想要一个与您的整数数组匹配的布尔列表,那么它只是
int[] dataList = { 100, 40, 10, 200};
var res = dataList.Select(item => item > 50).ToList();
foreach(bool b in res)
Console.WriteLine(b);
最后,对Any的调用是错误的。当列表中的元素满足条件,然后STOPS枚举时,它返回true或false。它不返回可以使用ToList()实现的IEnumerable。