根据列标准删除

时间:2017-08-06 14:43:42

标签: c#

我正在尝试删除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());

如果我尝试使它们都起作用,脚本会抛出异常。

你能说出最好的共同努力吗?

由于

1 个答案:

答案 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());