عملگر تجمیع Sum
عملگر Sum در زبان کوئری نویسی LINQ به منظور محاسبه مجموع عناصر عددی موجود در یک مجموعه استفاده می شود. در مثال زیر با استفاده از این عملگر مجموع مقادیر موجود در مجموعه را محاسبه می کنیم:
1 2 3 4 5 6 7 8 9 10 | IList<int> intList = new List<int>() { 10, 21, 30, 45, 50, 87 }; var total = intList.Sum(); Console.WriteLine("Sum: {0}", total); var sumOfEvenElements = intList.Sum(i => { if(i%2 == 0) return i; return 0; }); Console.WriteLine("Sum of Even Elements: {0}", sumOfEvenElements ); |
خروجی مثال:
1 2 | Sum: 243 Sum of Even Elements: 90 |
در مثال با استفاده از عملگر Sum مجموعه سن دانش آموزان و همچنین مجموع سن دانش آموزان بزرگسال (بالا 18 سال) را محاسبه می کنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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 = "Ron" , Age = 15 } }; var sumOfAge = studentList.Sum(s => s.Age); Console.WriteLine("Sum of all student's age: {0}", sumOfAge); var numOfAdults = studentList.Sum(s => { if(s.Age >= 18) return 1; else return 0; }); Console.WriteLine("Total Adult Students: {0}", numOfAdults); |
خروجی مثال:
1 2 | Total Age of Student: 87 Total Adult Students: 3 |
عملگر Sum در سینتکس کوئری و زبان سی شارپ پشتیبانی نمی شود اما در زبان 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 totalAge = Aggregate st In studentList Into Sum(st.Age) Console.WriteLine("Sum of all student's age: {0}", totalAge); |
خروجی مثال:
1 | Sum of all student's age: 87 |
هیچ نظری ثبت نشده است