我试图使用Array.All或array.TrueforAll来查看我的数组中的所有值是否为1.我似乎可以让它工作
bool allAreOne = Array.TrueForAll(globalVariables.singlePeriodClasses, value = 1);
但我得到“值”不存在的错误......不太确定如何使用此方法。
答案 0 :(得分:5)
bool allAreOne = Array.TrueForAll(
globalVariables.singlePeriodClasses,
value => value == 1);
第二个参数是谓词,它定义了检查元素的条件。请记住, 谓词是一个返回true或false的函数 。
Predicate是一个方法的委托,如果是,则返回true 传递给它的对象与委托中定义的条件匹配。 数组的元素分别传递给Predicate,和 当委托对任何元素返回false时,处理停止。
从MSDN了解详情。
答案 1 :(得分:4)
TrueForAll
方法需要delegate(在本例中为Predicate<T>
)。提供一个的最简单方法是lambda expression(=>
)。另请注意assignment(=
)和equality(==
)运算符之间的区别:
bool allAreOne = Array.TrueForAll(
globalVariables.singlePeriodClasses,
value => value == 1);