如何使用Linq确定List <T>中的所有对象是否具有相同的属性值

jon*_*ana 1 c# linq lambda

我相信它并不难,但找不到任何东西.
我有一个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;
    }
Run Code Online (Sandbox Code Playgroud)

Igo*_*gor 8

using System.Linq; // at the top of your code file
Run Code Online (Sandbox Code Playgroud)

改变代码

var allHaveContederFactorValueOne = TryUpgradeConts.All(i => i.Contender.Factor == 1);
Run Code Online (Sandbox Code Playgroud)

了解如何使用lambda表达式表达式和各种内置函数在框架一样All,Any,Where等他们使编码容易得多.


oct*_*ccl 6

您所描述的是使用All扩展方法,您可以在其他答案中看到:

return TryUpgradeConts.All(c=>c.Contender.Factor == 1);
Run Code Online (Sandbox Code Playgroud)

但是代码的真正翻译是使用Any:

return TryUpgradeConts.Any(c=>c.Contender.Factor != 1);
Run Code Online (Sandbox Code Playgroud)

您正试图找到一些不符合条件的元素