使用Linq获取列表中的对象索引

时间:2013-08-07 16:31:53

标签: linq list indexing find indexof

我是Linq的新手。我有一个Customers table.ID,FullName,Organization,Location是列。我在Sqlite中有一个查询,返回2500条客户记录。我必须从该结果集中找到ID = 150的客户索引。它是一个客户列表。查询的结果集按组织排序。我尝试使用FindIndex和IndexOf但是前者得到错误而后者得到-1。那么,应该怎么做呢? 感谢。

2 个答案:

答案 0 :(得分:78)

您无需使用LINQ,可以使用List<T>的{​​{3}}:

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

答案 1 :(得分:31)

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方法。