【发布时间】:2014-09-07 15:42:01
【问题描述】:
Linq 的 Where 子句适用于布尔值。你如何让它与 sqlBooleans 一起工作。这是说明问题的示例代码
// Trivia example to draw attention to the problem
var nodeCollection = new List<SqlBoolean>();
nodeCollection.Add(SqlBoolean.Parse("0"));
nodeCollection.Add(SqlBoolean.Parse("1"));
nodeCollection.Add(SqlBoolean.Parse("1"));
var nodeA = SqlBoolean.Parse("1");
var trueOne = nodeCollection.Where(n => n == nodeA); // Error message, cannot convert SqlBoolean to bool
你得到一个错误,因为谓词的结果是 SqlBoolean 而不是 bool。您如何扩展 Where 子句以使其工作。使用强制转换,SqlBoolean 的 Value、IsTrue 和 IsFalse 是不可取的。
【问题讨论】:
标签: c# .net linq boolean linq-to-objects