Возвращение индекса в Enumerable Select - PullRequest
2 голосов
/ 29 марта 2010

У меня есть 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, или любой другой правильный индекс в исходной коллекции ...

Ответы [ 2 ]

4 голосов
/ 29 марта 2010

Похоже, ваша проблема заключается в фильтрации списка перед его индексацией.Вам нужно фильтровать после создания индекса.Проще говоря, предложение Where позже:

var test = TrackingCollection 
            .Select((item, index) => 
                                new 
                                { 
                                     index, item.SequenceNumber 
                                })
            .Where(x =>  x.SequenceNumber == 2);
0 голосов
/ 29 марта 2010

Почему не должно быть ноль? Индексы коллекций в C # по умолчанию начинаются с нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...