我有一个列表如下。我想检索所有值为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();
由于
此致 Balan Sinniah
答案 0 :(得分:3)
问题是在最初的Select
子句中,您返回了一个匿名类型。要取消该值,您需要额外Select
以后过滤回该值。
var val = listFilter
.Select((value, index) => new { Value = value, Index = index })
.Where(item => item.Value == 1)
.Select(item => item.Index)
.ToList();