برسی متدهای جدید LINQ در دات نت ۹داتنت ۹، که قرار است در نوامبر ۲۰۲۴ منتشر شود، پیشنمایش جدیدی ارائه کرده است که چندین متد LINQ جدید شامل CountBy، AggregateBy و Index را معرفی میکند:
متد CountBy: این متد امکان شمارش سریع عناصر در یک مجموعه بر اساس تابع انتخاب کلید را فراهم میکند و دیکشنریای برمیگرداند که کلیدها مقادیر منحصربهفرد هستند و مقادیر، تعداد هر کلید را نشان میدهند.
متد AggregateBy: این متد به شما اجازه میدهد که عناصر را بر اساس تابع انتخاب کلید و تابع تجمع، دستهبندی و تجمیع کنید. نتیجه نهایی دیکشنریای است که کلیدها مقادیر منحصربهفرد و مقادیر، نتایج تجمیع شده برای هر کلید هستند.
متد Index: این متد یک مجموعه ایندکس شده ایجاد میکند، به طوری که هر عنصر با ایندکس خود در مجموعه اصلی همراه است.
این متدهای جدید LINQ در داتنت ۹ امکاناتی را برای بهینهسازی کد و بهبود عملکرد فراهم کردهاند و ابزارهای بیشتری در اختیار توسعهدهندگان قرار میدهند.
در ادامه، مثالهایی از هر یک از متدهای جدید LINQ همراه با خروجی آنها ارائه شده است:
۱.
مثال متد CountByفرض کنید لیستی از افراد داریم که شامل نام و سن آنهاست و میخواهیم تعداد افراد را بر اساس سن آنها شمارش کنیم.
var people = new List
{
new Person { Name = "Ali", Age = 25 },
new Person { Name = "Sara", Age = 30 },
new Person { Name = "Reza", Age = 25 },
new Person { Name = "Maryam", Age = 30 },
new Person { Name = "Nima", Age = 20 }
};
var ageCounts = people.CountBy(p => p.Age);
foreach (var ageCount in ageCounts)
{
Console.WriteLine($"Age: {ageCount.Key}, Count: {ageCount.Value}");
}
خروجی:
Age: 25, Count: 2
Age: 30, Count: 2
Age: 20, Count: 1
۲.
مثال متد AggregateByدر این مثال، ما قصد داریم مجموع سنها را بر اساس گروههای سنی (به عنوان مثال زیر ۳۰ و بالای ۳۰) تجمیع کنیم.
var people = new List
{
new Person { Name = "Ali", Age = 25 },
new Person { Name = "Sara", Age = 30 },
new Person { Name = "Reza", Age = 25 },
new Person { Name = "Maryam", Age = 30 },
new Person { Name = "Nima", Age = 20 }
};
var ageSums = people.AggregateBy(
p => p.Age < 30 ? "Under 30" : "30 and Above",
(key, group) => group.Sum(p => p.Age)
);
foreach (var ageSum in ageSums)
{
Console.WriteLine($"Group: {ageSum.Key}, Sum of Ages: {ageSum.Value}");
}
خروجی:
Group: Under 30, Sum of Ages: 70
Group: 30 and Above, Sum of Ages: 60
۳.
مثال متد Indexدر این مثال، لیستی از نامها داریم و میخواهیم هر نام را همراه با ایندکس آن در لیست نمایش دهیم.
var names = new List { "Ali", "Sara", "Reza", "Maryam", "Nima" };
var indexedNames = names.Index();
foreach (var item in indexedNames)
{
Console.WriteLine($"Index: {item.Index}, Name: {item.Value}");
}
خروجی:
Index: 0, Name: Ali
Index: 1, Name: Sara
Index: 2, Name: Reza
Index: 3, Name: Maryam
Index: 4, Name: Nima
‼️برای دیدن نمونه مثال و مطالعه بیشتر به دو لینک زیر مراجعه کنید:
🔗لینک اول🔗لینک دوم⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید.
#هوتن_همتی (
لینکدین)
کانال تلگرام:
@SoftwarePhilosophy_______