我有一个List<MyClass>
,其中包含2个具有SequenceNumber属性的项目。
如果我在下面使用此代码,则返回的索引为0而不是1:
var test = TrackingCollection
.Where(x => x.SequenceNumber == 2)
.Select((item, index) =>
new
{
index, item.SequenceNumber
});
这是因为它在我的新匿名类型中引用了0作为索引,还是我需要增加的一些基于零索引的怪异。
我所追求的是返回TrackingCollection中的索引,其中序列号为2或887或原始集合中的任何其他正确索引...
答案 0 :(得分:4)
听起来你的问题是在索引之前过滤列表。生成索引后需要进行过滤。简单地稍后放置Where子句:
var test = TrackingCollection
.Select((item, index) =>
new
{
index, item.SequenceNumber
})
.Where(x => x.SequenceNumber == 2);
答案 1 :(得分:0)
为什么不应该为零?默认情况下,C#的集合索引从零开始。