在ADO.NET中对数据表进行排序的最佳方法是什么

时间:2009-03-26 16:32:21

标签: ado.net sorting sql-order-by

从性能和代码可读性的角度来看,在c#中对数据表进行排序的最佳方法是什么:

personsDT.OrderBy(person => person.PersonName);

或:

personsDT.DefaultView.Sort = "PersonName ASC";

personsDT是从SharePoint列表构建的,因此不可能使用SQL(我知道SQL SELECT语句中的ORDER BY claude是最好的方法)。考虑到性能,我担心OrderBy<>子句可能比数据视图中的排序慢。您是否意识到这种性能影响?

4 个答案:

答案 0 :(得分:4)

我更喜欢第一种选择。

1)对于代码而言,可读性观点我认为Lambda比第二个更清晰。

2)在第一种情况下,您使用强类型方式对实体进行排序,这是好的。

3)在第二种情况下,你传递的字段和字符串mmmm不喜欢它。

去Lambdas !!!

问候!

答案 1 :(得分:1)

问题的目的是什么?表演几乎肯定不是问题;如果没有,你需要在你的上下文中测试它。我想如果你为SQL语句指定一个排序,它应该在SQL语句中;如果可能的话,我更愿意避免以字符串方式构造SQL语句。你更喜欢哪种美学?

答案 2 :(得分:1)

将我的2c扔进锅里:

来自sql背景,我个人觉得sql方式更直观 - 但是没有理由遵循它。 lambda方法有几个很好的建议:

由于MRFerocius(缺少'o'故意?)指出 - lambda方法是强类型的。这是件好事。

然后就是这样 - 如果你的排序标准变得更复杂,lambda方法将允许你处理sql方法不会的其他和深奥的条件。

在性能方面,对于像这样的简单条件,它们应该大致相同。

答案 3 :(得分:0)

好吧,如果性能非常重要,请在获取数据之前在SQL DB上对其进行排序。