C# 如何访问LINQ模型中的特定行?
我目前有一个linq查询,可以从我的products表中选择5个随机行。在模型中拥有集合后,如何访问特定行?我使用First()获取第一行数据,但我不确定如果我想从该查询的第三行获取数据,我会使用什么 谢谢C# 如何访问LINQ模型中的特定行?,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我目前有一个linq查询,可以从我的products表中选择5个随机行。在模型中拥有集合后,如何访问特定行?我使用First()获取第一行数据,但我不确定如果我想从该查询的第三行获取数据,我会使用什么 谢谢 var Model = (from r in DB.Products select r).OrderBy(r => Guid.NewGuid()).Take(5); var ProductID1 = Model.First().ProductID; var ProductID3 =
var Model = (from r in DB.Products select r).OrderBy(r => Guid.NewGuid()).Take(5);
var ProductID1 = Model.First().ProductID;
var ProductID3 = Model.???
您可以简单地迭代结果集合,并获取所需的第n个索引
Product product = null;
int index = 0;
foreach (Product p in DB.Products)
{
if (index == 3)
{
product = p;
break;
}
index++;
}
var模型=(从DB.Products中的r选择r)
.OrderBy(r=>Guid.NewGuid())
采取(5)ToArray();
var ProductID1=Model.First().ProductID;
var ProductID3=Model.Skip(2).First()您应该只运行一次查询,然后使用foreach对行进行迭代,或者只使用index属性选择适当的产品
var Model = (from r in DB.Products select r).OrderBy(r => Guid.NewGuid()).Take(5).ToList();
var ProductID1 = Model[0].ProductID;
var ProductID2 = Model[1].ProductID;
如果将查询处理为列表,则可以通过索引直接访问每个元素:
var Model = (from r in DB.Products select r)
.OrderBy(r => Guid.NewGuid())
.Take(5)
.ToList(); //Process into a list
var ProductID1 = Model[0].ProductID;
var ProductID3 = Model[3].ProductID;
...
var ProductID100 = Model[100].ProductID;
小心;由于查询是重新计算的,您可能会得到与Model.First()
相同的值。一旦有了数组/列表,您就应该通过索引来访问项目,而不是使用Skip
。如果你真的非常反对,至少使用ElementAt
。这就是我想要的。谢谢
var Model = (from r in DB.Products select r)
.OrderBy(r => Guid.NewGuid())
.Take(5)
.ToList(); //Process into a list
var ProductID1 = Model[0].ProductID;
var ProductID3 = Model[3].ProductID;
...
var ProductID100 = Model[100].ProductID;