【发布时间】:2017-06-14 21:30:20
【问题描述】:
我的问题在于 Where 子句 table1.Field<string>(3) == table2.Field<string>(3)。这些值是 0 或 1,我认为 linq 将其更改为 bool 值。 Linq 得到“无法将 'System.Boolean' 类型的对象转换为 'System.String' 类型”。
我试过table1[3].ToString() == table2[3].ToString(),但它没有出现错误或匹配的行,我知道它应该会出现一些。
我的查询:
var match = (from table1 in dt1.AsEnumerable()
join table2 in dt2.AsEnumerable() on table1[1].ToString() equals table2[1].ToString())
where table1.Field<string>(3) == table2.Field<string>(3)
&& table1.Field<string>("ID") == table2.Field<string>("ID")
select table1).ToList();
我希望在该行上添加更多 where 子句,但对于要比较的值为 0 或 1 的子句会失败。
感谢您的帮助
【问题讨论】:
-
如果您删除该条件,您的结果中是否有记录?
-
你试过
String.Equal()的方法吗? -
@Hackerman 是的。我什至可以添加其他不具有 0 或 1 值的 Where 子句并且它可以工作
-
@Media 是的,同样的问题