我正在尝试删除Checksum列中有0或Null的所有行。
如果我有以下情况,我只能使颂歌有效:
completeDT_memo.AsEnumerable().Where(r => r.Field<string>("dcChecksum") == "0").ToList().ForEach(row => row.Delete());
或:
completeDT_memo.AsEnumerable().Where(r => r.Field<string>("dcChecksum") == null).ToList().ForEach(row => row.Delete());
如果我尝试使它们都起作用,脚本会抛出异常。
你能说出最好的共同努力吗?
由于
答案 0 :(得分:1)
我认为问题在于,会抛出异常,因为您尝试检查r.Field<string>("dcChecksum")
是否等于"0"
,而它是null
。因此,您首先要检查以下选项,r.Field<string>("dcChecksum")
是null
。
completeDT_memo.AsEnumerable().Where(r => string.IsNullOrEmpty(r.Field<string>("dcChecksum"))).ToList().ForEach(row => row.Delete());
或
completeDT_memo.AsEnumerable().Where(r => (r.Field<string>("dcChecksum") == null) ? true : r.Field<string>("dcChecksum") == "0").ToList().ForEach(row => row.Delete());