我有一个DataTable
与Name
列。我想生成按字母顺序排列的唯一名称的集合。以下查询忽略订单由子句。如何使用LINQ从DataTable获取独特的有序名称列表?
var names =
(from DataRow dr in dataTable.Rows
orderby (string)dr["Name"]
select (string)dr["Name"]).Distinct();
为什么orderby
没有得到执行?
我有一个DataTable
与Name
列。我想生成按字母顺序排列的唯一名称的集合。以下查询忽略订单由子句。如何使用LINQ从DataTable获取独特的有序名称列表?
var names =
(from DataRow dr in dataTable.Rows
orderby (string)dr["Name"]
select (string)dr["Name"]).Distinct();
为什么orderby
没有得到执行?
为了使其更具可读性和可维护性,您还可以将其拆分为多个LINQ语句。
x1
,怎么做,如果需要的x1
为x2
投影,使用自己需要的任何区别x2
为,通过排序任何你想要问题是含混 经营者不授予其将 保持 值的原始顺序。
所以,你的查询将需要这样
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);
这应该对你所需要的工作。
var sortedTable = (from results in resultTable.AsEnumerable()
select (string)results[attributeList]).Distinct().OrderBy(name => name);
尝试了FO如下:
dataTable.Rows.Cast<DataRow>().select(dr => dr["Name"].ToString()).Distinct().OrderBy(name => name);
摘要:所有的答案都有一些共同之处。
OrderBy需要是最后的操作。