2

任何人都可以帮助我如何将以下 c# 代码转换为使用 linq 到 sql 吗?通过使用 linq to 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];
               }
        }
    }
4

2 回答 2

5

看起来你想要类似的东西:

allItems = all.SelectMany(a => a.Items)
              .Where(a => a.Item.TruckItemID.Equals(CarItem.CarItemID));

但请记住,执行不会加快。LINQ 会将您的查询扩展为几乎相同的代码。

于 2012-08-02T15:56:10.090 回答
1

Linq 2 Sql 是一种数据库访问技术,可将 LINQ 转换为 SQL 命令并在数据库上执行它们。它将数据返回到内存集合中。由于 for 循环非常原始,如果使用得当,它们往往会提高速度。一旦开始嵌套 for 循环,您的操作将随着数据增加 O(n^2) 呈指数级变慢。

于 2012-08-02T15:59:09.667 回答