我有一个项目列表
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);
}
在此示例中,我需要知道mainItem
中ItemsList
的位置,以获取列表中项目的相应页码。如何使用Linq获取PageNumber
或no of Items before mainItem
或position of mainItem
?
答案 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);