繁体   English   中英

从数据表获取不同的字符串列表

[英]Get Distinct String List From DataTable

为了减少代码量,可以将其合并为一行-在这里我将DataTable列转换为字符串列表,但我只希望该列表中的不同项(有多个列,因此有时列将具有多个值,其中一个不会):

List<string> column1List = returnDataTable.AsEnumerable().Select(x => x["Column1"].ToString()).ToList();
var distinctColumn1 = (from distinct1 in column1List select distinct1).Distinct();

上面的作品,但是多余的一行。 由于在列表上有一个与众不同的选项,所以我尝试了:

List<string> column1List = (returnDataTable.AsEnumerable().Select(x => x["Column1"].ToString()).ToList()).Distinct();

但是,这些错误使您似乎无法在从DataTable(?)转换的列表上调用distinct。

只是好奇是否有可能将DataTable转换为字符串列表,并且只在一行中获取不同的值。 可能不可能。

在您的情况下, Distinct返回IEnumerable<TSource> ,它返回IEnumerable<String>并且您尝试在输出中获取List<String>

您需要更改以下代码

List<string> column1List = (returnDataTable.AsEnumerable().Select(x => x["Column1"].ToString()).ToList()).Distinct();


List<string> column1List = (returnDataTable.AsEnumerable().Select(x => x["Column1"].ToString()).Distinct().ToList();

使用System.Linq您可以使用类似这样的东西

my_enumerable.GroupBy(x => x.Column1).Select(x => x.First).ToList()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM