【发布时间】:2013-08-07 16:31:53
【问题描述】:
我是 Linq 的新手。我有一个客户表。ID、全名、组织、位置是列。我在 Sqlite 中有一个查询返回 2500 条客户记录。例如,我必须从这个结果集中找到 ID=150 的客户的索引。它的客户列表。查询的结果集按组织排序。我尝试使用 FindIndex 和 IndexOf,但前者出错,后者出错 -1。那么,应该怎么做呢? 谢谢。
【问题讨论】:
标签: linq list indexing find indexof
我是 Linq 的新手。我有一个客户表。ID、全名、组织、位置是列。我在 Sqlite 中有一个查询返回 2500 条客户记录。例如,我必须从这个结果集中找到 ID=150 的客户的索引。它的客户列表。查询的结果集按组织排序。我尝试使用 FindIndex 和 IndexOf,但前者出错,后者出错 -1。那么,应该怎么做呢? 谢谢。
【问题讨论】:
标签: linq list indexing find indexof
你不需要使用LINQ,你可以使用FindIndex的List<T>:
int index = customers.FindIndex(c => c.ID == 150);
【讨论】:
List<T> 而不是任何 IList<T> 时才有用。
ToArray() 获得)也可以使用的情况下,从不有充分的理由使用ToList()。
Linq to Objects 已重载 Select 方法
customers.Select((c,i) => new { Customer = c, Index = i })
.Where(x => x.Customer.ID == 150)
.Select(x => x.Index);
请记住,您应该拥有内存中的 List<Customer> 才能使用此 Linq to Objects 方法。
【讨论】: