任何人都可以帮我解决如何将以下c#代码转换为使用linq到sql的问题?通过使用linq到sql,它会执行得更快还是仍然与下面相同?
foreach (var a in all)
{
for (int i = 0; i < a.Items.Length; i++)
{
if (a.Items[i].Item.TruckItemID.Equals(CarItem.CarItemID))
{
allItems = a.Items[i];
}
}
}
答案 0 :(得分:5)
看起来像你想要的东西:
allItems = all.SelectMany(a => a.Items)
.Where(a => a.Item.TruckItemID.Equals(CarItem.CarItemID));
但请记住,执行速度不会加快。 LINQ会将您的查询扩展为几乎相同的代码。
答案 1 :(得分:1)
Linq 2 Sql是一种数据库访问技术,它将LINQ转换为SQL命令并在数据库上执行它们。它将数据返回到内存中的集合中。由于for循环非常原始,如果使用得当,它们的速度往往很好。一旦开始嵌套for循环,随着数据增加O(n ^ 2),您的操作将呈指数级增长。