我有一個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需要是最後的操作。