How do I get a distinct, ordered list of names from a DataTable using LINQ?
我有一个
1 2 3 4 | var names = (from DataRow dr in dataTable.Rows orderby (string)dr["Name"] select (string)dr["Name"]).Distinct(); |
为什么不强制执行
问题是运营商不同意维持原订单价值观。
所以您的查询需要这样工作
1 2 | var names = (from DataRow dr in dataTable.Rows select (string)dr["Name"]).Distinct().OrderBy( name => name ); |
为了使它更易于阅读和维护,您还可以将其拆分为多个LINQ语句。
1 2 | var sortedTable = (from results in resultTable.AsEnumerable() select (string)results[attributeList]).Distinct().OrderBy(name => name); |
尝试以下操作:
1 | dataTable.Rows.Cast<DataRow>().select(dr => dr["Name"].ToString()).Distinct().OrderBy(name => name); |
尝试以下操作
1 2 | var names = (from dr in dataTable.Rows select (string)dr["Name"]).Distinct().OrderBy(name => name); |
这应该能满足你的需要。
您可以使用类似的方法:
1 | dataTable.Rows.Cast<DataRow>().GroupBy(g => g["Name"]).Select(s => s.First()).OrderBy(o => o["Name"]); |
摘要:所有的答案都有一些共同点。
orderby必须是最终操作。