猿教程 Logo

Linq聚合操作符:Count

Count运算符返回集合中的元素数或满足给定条件的元素数。

Count()扩展方法有以下两个重载:

相关实例:

int Count<TSource>();

int Count<TSource>(Func<TSource, bool> predicate);

Count的第一个重载方法返回指定集合中元素的数量,而第二个重载方法返回满足作为lambda表达式/谓词函数给定的条件的元素的数量。

以下示例使用方法语法中的Count()方法返回集合中的元素数。

相关实例:

IList<Student> studentList = new List<Student>>() { 
        new Student() { StudentID = 1, StudentName = "John", Age = 13} ,
        new Student() { StudentID = 2, StudentName = "Moin",  Age = 21 } ,
        new Student() { StudentID = 3, StudentName = "Bill",  Age = 18 } ,
        new Student() { StudentID = 4, StudentName = "Ram" , Age = 20} ,
        new Student() { StudentID = 5, StudentName = "Mathew" , Age = 15 } 
    };

var numOfStudents = studentList.Count();

Console.WriteLine("Number of Students: {0}", numOfStudents);

相关实例:

Dim studentList = New List(Of Student) From {
        New Student() With {.StudentID = 1, .StudentName = "John", .Age = 13},
        New Student() With {.StudentID = 2, .StudentName = "Moin", .Age = 21},
        New Student() With {.StudentID = 3, .StudentName = "Bill", .Age = 18},
        New Student() With {.StudentID = 4, .StudentName = "Ram", .Age = 20},
        New Student() With {.StudentID = 5, .StudentName = "Ron", .Age = 15}
}

Dim numOfStudents = studentList.Count()

Console.WriteLine("Number of Students: {0}", numOfStudents);

运行结果:

Number of Students: 5

在以下示例中,我们通过在Count方法中指定条件来获取年龄为18岁或以上的学生的数量:

相关实例:

// Student collection
IList<Student> studentList = new List<Student>>() { 
        new Student() { StudentID = 1, StudentName = "John", Age = 13} ,
        new Student() { StudentID = 2, StudentName = "Moin",  Age = 21 } ,
        new Student() { StudentID = 3, StudentName = "Bill",  Age = 18 } ,
        new Student() { StudentID = 4, StudentName = "Ram" , Age = 20} ,
        new Student() { StudentID = 5, StudentName = "Mathew" , Age = 15 } 
    };

var numOfStudents = studentList.Count(s => s.Age >= 18);

Console.WriteLine("Number of Students: {0}", numOfStudents);

运行结果:

Number of Students: 3
注意

在VB.Net中不支持具有谓词参数的Count()扩展方法。


查询语法中的Count运算符:

相关实例:

// Student collection
Dim studentList = New List(Of Student) From {
        New Student() With {.StudentID = 1, .StudentName = "John", .Age = 13},
        New Student() With {.StudentID = 2, .StudentName = "Moin", .Age = 21},
        New Student() With {.StudentID = 3, .StudentName = "Bill", .Age = 18},
        New Student() With {.StudentID = 4, .StudentName = "Ram", .Age = 20},
        New Student() With {.StudentID = 5, .StudentName = "Ron", .Age = 15}
}

Dim numOfStudents = Aggregate st In studentList 
                    Into Count(st.Age >= 18)
             

Console.WriteLine("Number of Student: {0}", numOfStudents);

运行结果:

Number of Students: 3

C#查询语法不支持聚合运算符。 但是,您可以将查询包含在括号中,并使用聚合函数,如下所示。

相关实例:

var totalAge = (from s in studentList
                select s.age).Count();

猿教程(www.yuanjiaocheng.net)下一部分中将了解另一个汇总运算符 - Max。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Linq/linq-aggregation-operator-count.html