【问题标题】:LINQ query to return List<bool>LINQ 查询返回 List<bool>
【发布时间】:2017-01-21 09:56:46
【问题描述】:

我有一个 LINQ 查询,如果该索引处的特定项目满足条件,我需要从中返回 true 或 false 的列表。

dataList = {100, 40, 10, 200};
var res = dataList.Select((item, index) => new { item, index }).Any(x => x.item > 50).ToList();

上述方法的问题是我无法在最后添加 ToList()。如果没有它,它只会返回真或假,而我想要一个布尔列表。

预期输出 - {true, false, false, true}

【问题讨论】:

  • dataList typeof ?
  • @PranavPatel 整数列表 dataList = new List{100, 40, 10, 200};
  • Any(x =&gt; x.item &gt; 50) 返回bool。您不能将bool 投射到列表中

标签: c# linq


【解决方案1】:

您的方法中有很多不需要的代码。
不需要 Index 的 Select 的重载只需要测试 Select 枚举的序列中的 current 元素是否大于 50。

如果您只想要一个与您的整数数组匹配的布尔值列表,那么它只是

int[] dataList = { 100, 40, 10, 200};
var res = dataList.Select(item => item > 50).ToList();

foreach(bool b in res)
   Console.WriteLine(b);

最后,对 Any 的调用是错误的。当列表中的元素满足条件然后停止枚举时,它返回 true 或 false。它不会返回您可以使用 ToList() 进行计量的 IEnumerable。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多