DOTNETCODE Telegram 2967
Forwarded from Software Philosophy
برسی متدهای جدید LINQ در دات نت ۹

دات‌نت ۹، که قرار است در نوامبر ۲۰۲۴ منتشر شود، پیش‌نمایش جدیدی ارائه کرده است که چندین متد LINQ جدید شامل CountBy، AggregateBy و Index را معرفی می‌کند:

متد CountBy: این متد امکان شمارش سریع عناصر در یک مجموعه بر اساس تابع انتخاب کلید را فراهم می‌کند و دیکشنری‌ای برمی‌گرداند که کلیدها مقادیر منحصربه‌فرد هستند و مقادیر، تعداد هر کلید را نشان می‌دهند.

متد AggregateBy: این متد به شما اجازه می‌دهد که عناصر را بر اساس تابع انتخاب کلید و تابع تجمع، دسته‌بندی و تجمیع کنید. نتیجه نهایی دیکشنری‌ای است که کلیدها مقادیر منحصربه‌فرد و مقادیر، نتایج تجمیع شده برای هر کلید هستند.

متد Index: این متد یک مجموعه ایندکس شده ایجاد می‌کند، به طوری که هر عنصر با ایندکس خود در مجموعه اصلی همراه است.

این متدهای جدید LINQ در دات‌نت ۹ امکاناتی را برای بهینه‌سازی کد و بهبود عملکرد فراهم کرده‌اند و ابزارهای بیشتری در اختیار توسعه‌دهندگان قرار می‌دهند.

در ادامه، مثال‌هایی از هر یک از متدهای جدید LINQ همراه با خروجی آن‌ها ارائه شده است:

۱. مثال متد CountBy

فرض کنید لیستی از افراد داریم که شامل نام و سن آن‌هاست و می‌خواهیم تعداد افراد را بر اساس سن آن‌ها شمارش کنیم.
var people = new List<Person>
{
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<Person>
{
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<string> { "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

_______
👍4



tgoop.com/dotnetcode/2967
Create:
Last Update:

برسی متدهای جدید LINQ در دات نت ۹

دات‌نت ۹، که قرار است در نوامبر ۲۰۲۴ منتشر شود، پیش‌نمایش جدیدی ارائه کرده است که چندین متد LINQ جدید شامل CountBy، AggregateBy و Index را معرفی می‌کند:

متد CountBy: این متد امکان شمارش سریع عناصر در یک مجموعه بر اساس تابع انتخاب کلید را فراهم می‌کند و دیکشنری‌ای برمی‌گرداند که کلیدها مقادیر منحصربه‌فرد هستند و مقادیر، تعداد هر کلید را نشان می‌دهند.

متد AggregateBy: این متد به شما اجازه می‌دهد که عناصر را بر اساس تابع انتخاب کلید و تابع تجمع، دسته‌بندی و تجمیع کنید. نتیجه نهایی دیکشنری‌ای است که کلیدها مقادیر منحصربه‌فرد و مقادیر، نتایج تجمیع شده برای هر کلید هستند.

متد Index: این متد یک مجموعه ایندکس شده ایجاد می‌کند، به طوری که هر عنصر با ایندکس خود در مجموعه اصلی همراه است.

این متدهای جدید LINQ در دات‌نت ۹ امکاناتی را برای بهینه‌سازی کد و بهبود عملکرد فراهم کرده‌اند و ابزارهای بیشتری در اختیار توسعه‌دهندگان قرار می‌دهند.

در ادامه، مثال‌هایی از هر یک از متدهای جدید LINQ همراه با خروجی آن‌ها ارائه شده است:

۱. مثال متد CountBy

فرض کنید لیستی از افراد داریم که شامل نام و سن آن‌هاست و می‌خواهیم تعداد افراد را بر اساس سن آن‌ها شمارش کنیم.

var people = new List<Person>
{
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<Person>
{
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<string> { "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

_______

BY DotNet | دات نت




Share with your friend now:
tgoop.com/dotnetcode/2967

View MORE
Open in Telegram


Telegram News

Date: |

“Hey degen, are you stressed? Just let it all out,” he wrote, along with a link to join the group. To edit your name or bio, click the Menu icon and select “Manage Channel.” On June 7, Perekopsky met with Brazilian President Jair Bolsonaro, an avid user of the platform. According to the firm's VP, the main subject of the meeting was "freedom of expression." Over 33,000 people sent out over 1,000 doxxing messages in the group. Although the administrators tried to delete all of the messages, the posting speed was far too much for them to keep up. Just as the Bitcoin turmoil continues, crypto traders have taken to Telegram to voice their feelings. Crypto investors can reduce their anxiety about losses by joining the “Bear Market Screaming Therapy Group” on Telegram.
from us


Telegram DotNet | دات نت
FROM American