我知道如何在C#中过滤或选择数据表,如下所示。 (如果列的数据类型是字符串)。喜欢以下
Bool ReturnValue = DataTable.Select("LEN([" + ColumnName + "]) > 5").any();
上面的代码,如果包含value的任何行的长度大于50个字符,那么它将输出为true。
我想用双重类型做上面的事情。在这里,我有列" columnName"它是双数据类型。在这种情况下,上面的代码会给我一个错误。
聚合参数中的语法错误:期望单个列参数 有可能'孩子'限定符。
因为LEN()不适用于double类型。 任何人都知道如何对double数据类型列执行相同的操作。 E.g。
Correct: "abcdef"
Error: "123456"
因为第一个是字符串类型而LEN()适用于它但不适用于第二种情况。因为所有都是数字,所以datatable中列的数据类型是double或int32,而LEN()在那里不起作用。
请帮助 感谢
答案 0 :(得分:0)
您可以使用LINQ to DataSet:
DataTable.AsEnumerable().Any(r => r.Field<double>(ColumnName).ToString().Length > 5)
但计算&#39;长度&#39;双重很奇怪。例如。 10
的长度等于2
,但1.2345
的长度等于6