gpt4 book ai didi

c# - Linq 查找元素和 foreach 循环

转载 作者:太空宇宙 更新时间:2023-11-03 19:27:37 25 4
gpt4 key购买 nike

我的代码可以正常工作,但我正在尝试找到一种更有效的方法来完成此任务。就像没有 foreach 循环的 linq 解决方案一样,它会更好。我没有任何性能问题..

  List<Table> tables = getTables();
foreach (TableCategories category in categories)
{
category.Tables=tables.FindAll(tbl => tbl.CategoryId == category.Id);
}

对于数据库,我使用纯 ADO.NET 而不是 linq,因为我使用的是 postgres。

最佳答案

怎么样:

var tablesByCategory = getTables().ToLookup(t => t.CategoryId);
foreach(var category in categories)
{
category.Tables = tablesByCategory[category.Id];
}

这样效率更高(假设你有很多表),因为你在 O(n) 时间开始建立一个查找,然后 for 循环中的每个查找都是 O(1) 时间,所以你最终复杂度为 O(m + n) 而不是 O(m*n)。

关于c# - Linq 查找元素和 foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7410579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com