如何在linq列表中选择特定行?

时间:2011-02-02 21:35:53

标签: c# linq

我有一个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};

3 个答案:

答案 0 :(得分:3)

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

这应该会为您提供所需的项目,如果没有足够的行,则为null

答案 1 :(得分:1)

如果您知道之后的行号,则可以使用Skip()方法

例如,获得第6行:

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

答案 2 :(得分:1)

您可以使用:

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