0

我有一个如下列表。我想检索所有值为 1 的项目的索引。

        List<int> listFilter = new List<int>();

        listFilter.Add(1);
        listFilter.Add(0);
        listFilter.Add(0);
        listFilter.Add(1);

对于上面的示例数据,我应该得到 0 和 3。

下面的代码给了我一个 [value, index] 对的对象。如何修改它以仅输出仅包含索引的列表。

        var val = listFilter.Select((value, index) => new { Value = value, Index = index }).Where(item => item.Value == 1).ToList();

谢谢

问候, 巴兰辛尼亚

4

1 回答 1

3

问题是在初始Select子句中您返回了一个匿名类型。要取回该值,您需要Select稍后再过滤回该值。

var val = listFilter
  .Select((value, index) => new { Value = value, Index = index })
  .Where(item => item.Value == 1)
  .Select(item => item.Index)
  .ToList();
于 2012-05-02T08:09:37.247 回答