如何在已排序的Linq列表中查找项的位置(而不是Id)

时间:2014-02-17 14:43:10

标签: c# linq

我有一个项目列表

public class Item
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        public string Title { get; set; }
     }
public DbSet<Item> ItemSet { get; set; }

现在在我的控制器中,我将ItemSet列表作为分页

var mainItem = db.ItemSet.Find(id);
if(mainItem != null)
{
var ItemsList = db.Itemset.OrderBy(By Some Order).ThenBy(Another order).ToList();
var pg = page ?? 1; // need page number equal to page number of Item.
var list = ItemsList.ToPagedList(pg, 10);
}

在此示例中,我需要知道mainItemItemsList的位置,以获取列表中项目的相应页码。如何使用Linq获取PageNumberno of Items before mainItemposition of mainItem

2 个答案:

答案 0 :(得分:3)

您可以使用FindIndex获取商品的索引

int index = ItemList.FindIndex(item => item.Id== mainItem.Id);

答案 1 :(得分:2)

您可以使用List<T>.FindIndex Method (Predicate<T>)

int position = ItemList.FindIndex(r => r.Id == mainItem.Id);