问:我有DataTable一个Name专栏。我想生成按字母顺序排列的唯一名称的集合。以下查询忽略order by子句。
var names =
(from DataRow dr in dataTable.Rows
orderby (string)dr["Name"]
select (string)dr["Name"]).Distinct();
为什么不orderby强制执行?
答:为了使其更具可读性和可维护性,您还可以将其拆分为多个 LINQ 语句。
首先,将您的数据选择到一个新列表中,我们称之为x1,如果需要,进行投影
接下来,使用您需要的任何区别从x1into中创建一个不同的列表x2
最后,创建一个有序列表,从x2into x3,按你想要的排序