2014-02-17 4 views
0

У меня есть список Элемента, которыйКак найти позицию (не Id) элемент в отсортированном списке Linq

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

Теперь в моем контроллере я получаю список НИКАКИХ гарантий, как выгружаемый

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, чтобы добраться до соответствующего номера страницы для элемента в списке. Как получить PageNumber или no of Items before mainItem или position of mainItem с использованием Linq?

+0

возможный дубликат [Получить индекс объекта в общий список] (HTTP://stackoverflow.com/questions/5419278/get-index-of-an-object-in-a-generic-list) –

+0

Кажется, что вы действительно хотите, чтобы индекс страницы не являлся индексом item. –

+0

@TimSchmelter Да, Тим прав. Но я искал документацию для MVC PagedList и не предлагал метод. Поэтому я делаю это так. –

ответ

3

Вы можете использовать FindIndex, чтобы получить индекс элемента

int index = ItemList.FindIndex(item => item.Id== mainItem.Id); 
Смежные вопросы