数据表选择double的行值长度

时间:2017-02-16 11:43:48

标签: c# select filter datatable string-length

我知道如何在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()在那里不起作用。

请帮助 感谢

1 个答案:

答案 0 :(得分:0)

您可以使用LINQ to DataSet:

DataTable.AsEnumerable().Any(r => r.Field<double>(ColumnName).ToString().Length > 5)

但计算&#39;长度&#39;双重很奇怪。例如。 10的长度等于2,但1.2345的长度等于6