Count運(yùn)算符返回集合中的元素?cái)?shù)或滿足給定條件的元素?cái)?shù)。
Count()擴(kuò)展方法有以下兩種重載:
Count() 重載:
int Count<TSource>();int Count<TSource>(Func<TSource, bool> predicate);
Count的第一個(gè)重載方法返回指定集合中的元素?cái)?shù),而第二個(gè)重載方法返回滿足指定條件的元素?cái)?shù)(由lambda表達(dá)式/predicate 謂詞函數(shù)給出)。
下面的示例演示了原語(yǔ)集合上的Count()。
IList<int> intList = new List<int>() { 10, 21, 30, 45, 50 };
var totalElements = intList.Count();
Console.WriteLine("元素總數(shù): {0}", totalElements);
var evenElements = intList.Count(i => i%2 == 0);
Console.WriteLine("偶數(shù)元素: {0}", evenElements);元素總數(shù):5 偶數(shù)元素:3
下面的示例演示Count()復(fù)雜類型集合上的方法。
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 totalStudents = studentList.Count();
Console.WriteLine("學(xué)生總?cè)藬?shù): {0}", totalStudents);
var adultStudents = studentList.Count(s => s.Age >= 18);
Console.WriteLine("成人學(xué)生人數(shù): {0}", adultStudents );學(xué)生總?cè)藬?shù):5 成人學(xué)生人數(shù):3
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 totalStudents = studentList.Count()
Console.WriteLine("學(xué)生總?cè)藬?shù): {0}", totalStudents)學(xué)生總?cè)藬?shù):5
在VB.Net中不支持帶有謂詞參數(shù)的Count(predicate)擴(kuò)展方法。
// 學(xué)生集合
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 totalStudents = Aggregate st In studentList
Into Count(st.Age >= 18)
Console.WriteLine("學(xué)生總?cè)藬?shù): {0}", totalStudents)學(xué)生總?cè)藬?shù):3
C#查詢語(yǔ)法不支持聚合運(yùn)算符。但是,您可以將查詢括在方括號(hào)中并使用聚合函數(shù),如下所示。
var totalAge = (from s in studentList select s.age).Count();
在下一部分中了解另一個(gè)聚合運(yùn)算符-Max。