عملگر تجمیع Average
متد افزودنی Average در زبان کوئری نویسی LINQ به منظور محاسبه میانگین عناصر عددی موجود در یک مجموعه استفاده می شود. در مثال زیر با استفاده از این متد میانگین اعداد موجود در مجموعه intList را محاسبه می کنیم:
1 2 3 | IList<int> intList = new List<int>>() { 10, 20, 30 }; var avg = intList.Average(); Console.WriteLine("Average: {0}", avg); |
متد Average یک overload دیگر است که یک عبارت لامبدا به عنوان ورودی می گیرد و این عبارت مشخص کننده خاصیتی است که می خواهیم میانگین مقادیر آن را محاسبه کنیم. نوع این خاصیت می تواند int، decimal، double و یا float باشد. برای درک بهتر به مثال زیر توجه کنید که در آن میانگین سن دانش آموزان را محاسبه می کنیم:
1 2 3 4 5 6 7 8 9 | 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 avgAge = studentList.Average(s => s.Age); Console.WriteLine("Average Age of Student: {0}", avgAge); |
خروجی مثال فوق:
1 | Average Age of Student: 17.4 |
توجه داشته باشید که عملگر Average در سینتکس کوئری و زبان سی شارپ پشتیبانی نمی شود اما در زبان VB.NET همانطور که مثال زیر مشاهده می کنید پشتیبانی می شود:
1 2 3 4 5 6 7 8 9 | 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 avgAge = Aggregate st In studentList Into Average(st.Age) Console.WriteLine("Average Age of Student: {0}", avgAge) |
خروجی مثال:
1 | Average Age of Student: 17.4 |
هیچ نظری ثبت نشده است