选择然后过滤和在linq中选择distinct的比较,c#

时间:2014-07-30 08:46:05

标签: c# sql linq

哪个更快?

从LINQ获取一些变量(比如string类型)的列表,然后在C#中过滤重复项,或仅在LINQ中直接selecting distinct值?

说我们有

  

如果我们采用重复的N行

     

和R,如果我们过滤

     

(N>> R)有许多重复。

基本上我要问的是,一般来说哪种编程更快更好

  • 在LINQ中选择整数N行,将其转换为列表然后将其过滤为R行

  • 或直接从LINQ中选择R行并将其转换为列表。

注意:

在SQL中,获取R行所需的时间大约是为我的情况获取N所需的时间的2倍!但欢迎通用答案。

2 个答案:

答案 0 :(得分:1)

看,你的问题很复杂,我的意思是什么。

1)更好的编程是大部分时间都使用现成的内置函数

2)根据我的经验,在MsSql和C#中,Distinct工作得更快。

3)LINQ对过滤有点懒,特别是如果列表中有很多项目。 Distinct由Microsoft开发人员优化。

注意:类似question,可能很有用

结果:尝试使用您平台上的更多内置函数,网上有大量信息,您可以通过调用就绪函数来转义编码段落。

希望它有所帮助。

答案 1 :(得分:1)

我假设当你说Linq时,你的意思是LinqToSQL。

连接数据库时的经验法则只能得到你需要的东西;为此,如果你对Linq有一个很好的查询策略,那么在LinqToSQL上过滤可以节省大量的浪费工作。

如果您要过滤的列恰好是FullTextIndex,那么您就可以获得累积奖金。