dt.AsEnumerable().Count(x => x.Field<string>("ENTNTRCODE").Substring(0, 9) == "011627007");
dt.AsEnumerable().Any(x => x.Field<string>("ENTNTRCODE").Equals("27"))
代码如上,DataTable中有一列“ENTNTRCODE”,可能有空指,我需要计算出前9位是“011627007”开头的行总数,这样写运行时候提示未将对象引用设置到对象的实例。如果不加上“Substring(0, 9)”不会报错,但是这样就没意义了。
第二段代码也是提示未将对象引用设置到对象的实例。但是将Equals换成==就没问题了。
很明显啊,你的字段可能有空值那么x.Field<string>("ENTNTRCODE")解析出来的对象就是null,你再用null.Substring()那肯定报错了,第二行也是一样的问题,你用==没问题应该知道原因吧
对空值不能计算子字符串,你可以加个过滤条件,将空值去掉