عملگر تجمیع Count
عملگر Count در زبان کوئری نویسی LINQ به منظور پیدا کردن تعداد عناصر یک مجموعه استفاده می شود. متد افزودنی Count دو overload دارد که در زیر مشاهده می کنید:
1 2 | int Count<TSource>(); int Count<TSource>(Func<TSource, bool> predicate); |
اولین overload مربوط به متد Count تعداد کل عناصر موجود در مجموعه را باز میگرداند و دومین overload این متد یک شرط به عنوان ورودی می گیرد و تعداد عناصری که آن شرط را برآورده کنند باز می گرداند. برای درک بهتر به مثال زیر توجه کنید:
1 2 3 4 5 | IList<int> intList = new List<int>() { 10, 21, 30, 45, 50 }; var totalElements = intList.Count(); Console.WriteLine("Total Elements: {0}", totalElements); var evenElements = intList.Count(i => i%2 == 0); Console.WriteLine("Even Elements: {0}", evenElements); |
خروجی مثال فوق:
1 2 | Total Elements: 5 Even Elements: 3 |
مثال زیر نحوه استفاده از متد Count بر روی یک مجموعه نسبتا پیچیدهتر را نشان می دهد:
1 2 3 4 5 6 7 8 9 10 11 | 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("Total Students: {0}", totalStudents); var adultStudents = studentList.Count(s => s.Age >= 18); Console.WriteLine("Number of Adult Students: {0}", adultStudents ); |
خروجی مثال:
1 2 | Total Students: 5 Number of Adult Students: 3 |
توجه داشته باشید که عملگر Count در سینتکس کوئری و زبان سی شارپ پشتیبانی نمی شود اما می توانید از overload اول آن به این صورت استفاده کنید:
1 2 | var totalAge = (from s in studentList select s.age).Count(); |
overload اول این عملگر در سینتکس کوئری و زبان VB.NET پشتیبانی می شود. برای مثال:
1 2 3 4 5 6 7 8 9 10 11 | // 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 totalStudents = Aggregate st In studentList Into Count(st.Age >= 18) Console.WriteLine("Total Students: {0}", totalStudents) |
خروجی:
1 | Total Students: 3 |
هیچ نظری ثبت نشده است