1

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

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

或者:

personsDT.DefaultView.Sort = "PersonName ASC";

personDT 是从 SharePoint 列表构建的,因此无法使用 SQL(我知道 SQL SELECT 语句中的 ORDER BY 克劳德将是最好的方法)。考虑到性能,我担心 OrderBy<> 子句可能比数据视图中的 Sort 慢。你知道这样的性能影响吗?

4

4 回答 4

4

我会更喜欢第一个选项。

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

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

3)在第二种情况下,您正在传递字段并且字符串中的顺序 mmmm 不喜欢它。

去拉姆达斯!!!

问候!

于 2009-03-26T16:41:09.057 回答
1

提问的目的是什么?性能几乎可以肯定不是问题。如果没有,您需要在您的上下文中对其进行测试。我认为如果您为 SQL 语句指定排序,它应该在 SQL 语句中;如果可能的话,我更愿意避免按字符串构造 SQL 语句。你更喜欢哪个审美?

于 2009-03-26T16:39:39.043 回答
1

把我的 2c 扔进锅里:

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

正如 MRFerocius (遗漏的 'o' 是故意的吗?)指出 - lambda 方法是强类型的。这是好事。

然后就是这样 - 如果您的排序标准变得更加复杂,lambda 方法将允许您处理 sql 方法无法处理的额外和深奥的条件。

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

于 2010-02-04T07:26:17.043 回答
0

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

于 2009-03-26T16:45:02.167 回答