我有一个DataTable,其列名为'UID',类型为字符串。
在此列中验证每个值是否为整数的最佳方法是什么?
一种方法是循环遍历每一行,如下面的代码(dt变量是一个填充的DataTable对象),然后在try catch块中使用integer.Parse检查UID列的值,但可能有一个更简单的LINQ基于方法。
if( dt!=null)
{
try
{
foreach (DataRow row in dt.Rows)
{
int.Parse(row["UID"].ToString());
}
}
catch (Exception ex)
{
throw;
}
}
答案 0 :(得分:1)
您应该使用int.TryParse
代替,您可以使用Enumerable.All
来缩短代码:
int i;
bool allInts = table.AsEnumerable()
.All(r => int.TryParse(r.Field<string>("UID"), out i));
答案 1 :(得分:0)
试试这个
var table = YourTable;
int invalidDataCount = table.AsEnumerable().Where(d => d.Field<string>("UID").Contains('-')).Count();
if (invalidDataCount > 0) {
throw new Exception();
}