【发布时间】:2013-10-17 14:22:42
【问题描述】:
我有这句话linq来过滤一个DataTable:
string V = @"V";
var DTError = from DTError1 in DT.AsEnumerable()
.Where(r => ( (r.Field<string>("TIPO_DE_DOCUMENTO") != V) ))
select DTError1;
这个 linq 有效;但是当我在 linq 不起作用的地方添加另一个条件时(见下文)
string V = @"V";
string M = @"M";
var DTError = from DTError1 in DT.AsEnumerable()
.Where(r => ( (r.Field<string>("TIPO_DE_DOCUMENTO") != V) )
|| (r.Field<string>("TIPO_DE_DOCUMENTO") != M))
select DTError1;
为什么会这样?
我知道这是一个非常棘手的问题,但文档对我没有帮助。
谢谢。
【问题讨论】:
-
你的数据源是什么?你确定有'TIPO_DOC'的条目既不是V也不是E...... 至于TIPO_DOC;这是什么类型的字段名?
-
总是扩展“不起作用”。
-
您的查询本质上是在查找 TIPO_DE_DOCUMENTO 不等于 V 或不等于 M 的记录。如果它 = M 那么它!= V 反之亦然,因此您的 where 对于所有记录都是正确的。