计算bool属性为真的实例数 - C#

dro*_*rco 0 c# linq ienumerable

我有一个IEnumerable的某个具有bool属性的对象.我想计算在紧凑(在代码行方面)和可读方式中此属性设置为true的对象数量.

为了演示它,我创建了一个带有布尔属性'InnerProperty'的类'Obj'.静态函数'CountInner'实现上面定义的逻辑.我怎样才能更紧凑地实现它?

public class Obj
{
    private bool InnerProperty { get; set; } = false;

    public static int CountInner(IEnumerable<Obj> list)
    {
        var count = 0;
        foreach (var l in list)
        {
            if (l.InnerProperty)
            {
                count++;
            }
        }
        return count;
    }
}
Run Code Online (Sandbox Code Playgroud)

SO *_*ood 8

您可以使用Count接受谓词的LINQ ("用于测试条件的每个元素的函数."):

public static int CountInner(IEnumerable<Obj> list)
{
    return list.Count(x => x.InnerProperty);
}
Run Code Online (Sandbox Code Playgroud)