gpt4 book ai didi

c# - 哪个更好? DataTable.Select() 或 Linq 用于过滤对象?

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

我正在存储自定义类类型的对象集合。我给出了以下类型。

public class AnonymousClient
{
private string ipAddress, city, country, category;
private Guid id;
}

我可能需要根据城市、国家、类别等过滤对象。我可以想到两种方法 -

  1. 将其存储在字典中 Dictionary<Guid, AnonymousClient>并使用 Linq 过滤对象。
  2. 将其存储在 DataTable 中和成员的多列并使用 DataTable.Select() 来过滤记录。

我想它们都在内部循环。哪个更快更优雅?有什么见解吗?

最佳答案

使用 DataTable 会增加相当多的开销。设置查询后运行查询会更容易,因为它的代码已经创建,但运行速度不会那么快。

如果您想使用 id 查找项目你可以使用 Dictionary<Guid, AnonymousClient> ,如果你只想过滤其他字段的数据,你可以使用 List<AnonymousClient> .

最有效的方法是自己简单地循环集合并挑选出项目。 LINQ 几乎同样高效,但它增加了一点开销。另一方面,LINQ 代码变得非常简单。

使用 LINQ 扩展方法的示例 Where :

var companies = clients.Where(c => c.category == "Company");

关于c# - 哪个更好? DataTable.Select() 或 Linq 用于过滤对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5201927/

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