我认为它并不难,但找不到任何东西
我有List
个对象,我想编写一个查询来确定所有对象的特定属性是否具有值1。
我想使用LINQ
\ Lambda
。
private bool IsTheSame(List<ContenderLeague> TryUpgradeConts)
{
bool IsTheSameValue = true;
foreach (ContenderLeague c in TryUpgradeConts)
{
if (c.Contender.Factor != 1)
{
IsTheSameValue = false;
break;
}
}
return IsTheSameValue;
}
答案 0 :(得分:8)
using System.Linq; // at the top of your code file
修改代码
var allHaveContederFactorValueOne = TryUpgradeConts.All(i => i.Contender.Factor == 1);
了解如何在框架中使用lambdas表达式和各种内置函数,如All
,Any
,Where
等。它们使编码变得更加容易。
答案 1 :(得分:5)
您所描述的内容正在使用All
扩展方法,您可以在其他答案中看到:
return TryUpgradeConts.All(c=>c.Contender.Factor == 1);
但您的代码的真实翻译是使用Any
:
return TryUpgradeConts.Any(c=>c.Contender.Factor != 1);
您正在尝试找到一些不符合条件的元素
答案 2 :(得分:2)
使用linq .All()
方法。像下面这样的东西应该有效。
private bool IsTheSame(List<ContenderLeague> TryUpgradeConts)
{
return TryUpgradeConts.All(c => c.Contender.Factor == 1);
}