عملگر تجمیع Aggregate – آموزش LINQ

  • پنجشنبه ۲۲ مهر ۱۴۰۰
  • بازدید ۳۳ نفر

linq aggregation operator aggregate 11084 تصویر

عملگر تجمیع Aggregate

در LINQ، عملگرهای تجمیع به منظور انجام اعمال ریاضی مانند Average، Aggregate، Count، Max، Min و Sum بر روی عناصر عددی مجموعه استفاده می شوند.

متدتوضیحات
Aggregateیک عمل تجمیع سفارشی بر روی مقادیر موجود در یک مجموعه را انجام می دهد.
Averageمیانگین عناصر عددی موجود در مجموعه را محاسبه می کند.
Countبرای شمارش تعداد عناصر موجود در یک مجموعه استفاده می شود.
LongCountبرای شمارش تعداد عناصر موجود در یک مجموعه استفاده می شود. تفاوتی که با متد فوق دارد این است که مقدار بازگشتی از نوع Int64 است. بنابراین زمانی از این متد استفاده کنید که فکر میکنید تعداد عناصر از MaxValue نوع Int32 بیشتر باشد.
Maxعنصری که بیشترین مقدار را داشته باشد باز میگرداند.
Minعنصری که کمترین مقدار را داشته باشد باز میگرداند.
Sumجمع مقادیر مجموعه را باز میگرداند.

متد Aggregate

متد Aggregate به منظور انجام یک عمل تجمیع سفارشی بر روی مقادیر مجموعه استفاده می شود. در زیر می توانید overload های مربوط به این متد را مشاهده کنید:

در مثال زیر با استفاده از این متد، عناصر موجود در مجموعه را به صورت با کاما به هم متصل کرده ایم:

خروجی:

در تصویر زیر می توانید عملیات انجام شده در مثال فوق را مشاهده کنید:

linq aggregation operator aggregate 11084 1 تصویر

متد Aggregate با مقدار Seed

متد Arregate یک overload دیگر نیز دارد که در آن پارامتر اول یک مقدار به عنوان Seed می گیرد و پارامتر دوم یک Func. سینتکس متد به این صورت است:

در مثال زیر از یک رشته به عنوان مقدار Seed استفاده کرده ایم:

خروجی مثال:

در مثال فوق، مقدار “Student Names: “ به عنوان Seed ارسال شده است. مقدار Seed با نتیجه عملیات جمع میشود. در مثال زیر با استفاده از عملگر Aggregate سن دانش آموزان را با هم جمع میکنیم:

متد Aggregate با Result Selector

در این بخش سومین overload این متد را بررسی میکنیم که یک Result Selector است به این معنی که نتیجه نهایی را انتخاب می کند. اگر به مثال بخش قبل نگاه کنید متوجه می شوید که یک کاما در انتهای نتیجه اضافی است. با استفاده از Result Selector می توانیم مانند نمونه زیر آن را حذف کنیم:

خروجی مثال:

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است