我有一个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 :(得分: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);