【发布时间】:2017-01-25 04:08:33
【问题描述】:
为了减少代码量,是否可以将其组合在一行中 - 我将 DataTable 列转换为字符串列表,但我只想要该列表中的不同项目(有多个列,所以有时列将有多个值,其中一个不会):
List<string> column1List = returnDataTable.AsEnumerable().Select(x => x["Column1"].ToString()).ToList();
var distinctColumn1 = (from distinct1 in column1List select distinct1).Distinct();
上面的工作,但是一个额外的行。由于 distinct 是列表中的一个选项,因此我确实尝试了:
List<string> column1List = (returnDataTable.AsEnumerable().Select(x => x["Column1"].ToString()).ToList()).Distinct();
但是,该错误,因此似乎无法在从 DataTable (?) 转换的列表上调用 distinct。
只是好奇是否可以将 DataTable 转换为字符串列表并仅在一行中获取不同的值。可能是不可能的。
【问题讨论】:
-
只需移动
Distinct()之前ToList()。仅供参考,Distinct是IEnumerable<T>的扩展方法,而不是List<T>的方法。
标签: c#