Подтвердить что ты не робот

Получить индекс объекта в списке с помощью Linq

Я новичок в Linq. У меня есть таблица Customers.ID, FullName, Organization, Location - столбцы. У меня есть запрос в Sqlite, который возвращает мне 2500 записей клиентов. Я должен найти индекс клиента, где ID = 150, например, из этого набора результатов. Его список клиентов. Результирующий набор запроса упорядочивается организацией. Я пытался с FindIndex и IndexOf, но получал ошибки для первого и -1 для последнего. Итак, как это сделать? Спасибо.

4b9b3361

Ответ 1

Вам не нужно использовать LINQ, вы можете использовать FindIndex List<T>:

int index = customers.FindIndex(c => c.ID == 150);

Ответ 2

Linq to Objects перегружает Выбрать метод

customers.Select((c,i) => new { Customer = c, Index = i })
         .Where(x => x.Customer.ID == 150)
         .Select(x => x.Index);

Имейте в виду, что вы должны иметь встроенную память List<Customer> для использования этого метода Linq to Objects.