104 我有DataTable一Name列。我想生成按字母顺序排列的唯一名称的集合。以下查询将忽略order by子句。 var names = (from DataRow dr in dataTable.Rows orderby (string)dr["Name"] select (string)dr["Name"]).Distinct(); 为什么不orderby强制执行? c# linq .net-3.5 — 鲍勃 source
37 为了使其更具可读性和可维护性,您还可以将其拆分为多个LINQ语句。 首先,将您的数据选择到一个新列表中,我们称之为 x1,如果需要进行投影 接下来,使用您需要的任何区别,从x1到创建一个不同的列表x2 最后,创建一个有序列表,从x2到x3,根据您的需要进行排序 — a7drew source
55 问题在于Distinct运算符不授予其将保持值的原始顺序的权利。 因此,您的查询将需要像这样工作 var names = (from DataRow dr in dataTable.Rows select (string)dr["Name"]).Distinct().OrderBy( name => name ); — 鲍勃 source
11 var sortedTable = (from results in resultTable.AsEnumerable() select (string)results[attributeList]).Distinct().OrderBy(name => name); — 彼得·莫滕森 source
8 尝试以下方法: dataTable.Rows.Cast<DataRow>().select(dr => dr["Name"].ToString()).Distinct().OrderBy(name => name); — 加文·芳 source
3 尝试以下 var names = (from dr in dataTable.Rows select (string)dr["Name"]).Distinct().OrderBy(name => name); 这应该可以满足您的需求。 — 尼克·贝拉迪 source
2 您可以使用类似这样的方法: dataTable.Rows.Cast<DataRow>().GroupBy(g => g["Name"]).Select(s => s.First()).OrderBy(o => o["Name"]); — 普雷斯托 source