2011-02-02 26 views
2

我有一個linq列表。我想選擇某一行。我是否必須做一個foreach循環通過行到達指定的行,或者有另一種方式。如何在linq列表中選擇指定的行?

我不想要什麼......

編輯

specifiedRow = 13; 

-

var linqList = from a in random.List 
       where (a.id == idNum) 
       select new {a.id, a.name, a.address}; 
int counter = 0; 
foreach (var item in linqList) { 
    if(counter == specifiedRow) { 
     //do stuff 
    } 
} 

我想什麼......

var linqList = from a in random.List 
       where (a.id == idNum) 
       //row is specified row in linqList 
       select new {a.id, a.name, a.address}; 
+0

看看`.Skip()`。 – 2011-02-02 21:38:55

回答

3
linqList.Skip(specifiedRow -1).FirstOrDefault() 

這應該會給你想要的物品,或者如果沒有足夠的行,應該給你null

1

如果你知道你之後,你可以使用Skip()方法

如獲得第6行的行號:

var linqList = from a in random.List 
      where (a.id == idNum) 
      Skip(5) 
      select new {a.id, a.name, a.address}; 
1

您可以使用:

random.List.Where(a => a.id == idNum).Select(a => new {a.id, a.name, a.address}).ElementAt(counter); 
+0

我喜歡這種方法,因爲它是最明確的。 – RQDQ 2011-02-02 21:55:10