哪个更快?
从LINQ获取一些变量(比如string
类型)的列表,然后在C#中过滤重复项,或仅在LINQ中直接selecting distinct
值?
说我们有
如果我们采用重复的N行
和R,如果我们过滤
(N>> R)有许多重复。
基本上我要问的是,一般来说哪种编程更快更好
在LINQ中选择整数N行,将其转换为列表然后将其过滤为R行
或直接从LINQ中选择R行并将其转换为列表。
注意:
在SQL中,获取R行所需的时间大约是为我的情况获取N所需的时间的2倍!但欢迎通用答案。
答案 0 :(得分:1)
看,你的问题很复杂,我的意思是什么。
1)更好的编程是大部分时间都使用现成的内置函数
2)根据我的经验,在MsSql和C#中,Distinct工作得更快。
3)LINQ对过滤有点懒,特别是如果列表中有很多项目。 Distinct由Microsoft开发人员优化。
注意:类似question,可能很有用
结果:尝试使用您平台上的更多内置函数,网上有大量信息,您可以通过调用就绪函数来转义编码段落。
希望它有所帮助。
答案 1 :(得分:1)
我假设当你说Linq时,你的意思是LinqToSQL。
连接数据库时的经验法则只能得到你需要的东西;为此,如果你对Linq有一个很好的查询策略,那么在LinqToSQL上过滤可以节省大量的浪费工作。
如果您要过滤的列恰好是FullTextIndex,那么您就可以获得累积奖金。