解决方案:
原因是 Distinct不保证维持原来的数据顺序。
因此,查询应该像下面这样才有用
var names = (from DataRow dr in dataTable.Rows select (string)dr["Name"]).Distinct().OrderBy( name => name );
尝试以下
var names = (from dr in dataTable.Rows select (string)dr["Name"]).Distinct().OrderBy(name => name);
为了使其更具可读性和可维护性,我们还可以将其拆分为多个LINQ语句。
首先,将数据选择到一个新列表中,我们将其命名为" x1",并根据需要进行投影。接下来,根据要求,从" x1"到" x2"创建一个不同的列表。最后,创建一个有序列表,从x2
到x3
,按我们想要的顺序排序
var sortedTable = (from results in resultTable.AsEnumerable() select (string)results[attributeList]).Distinct().OrderBy(name => name);
"数据表DataTable" 有一列name。 如何获取根据name排序的集合。
下面的查询,order by无效
var names = (from DataRow dr in dataTable.Rows orderby (string)dr["Name"] select (string)dr["Name"]).Distinct();
日期:2020-03-23 14:22:49 来源:oir作者:oir