کشف متدهای جدید LINQ در سی شارپ 9

سلام! اگر شما هم مانند من از علاقه مندان به C# هستید، احتمالا همیشه به دنبال جدیدترین و بهترین ویژگی های این زبان هستید. خب، سی شارپ 9 چند روش فوق العاده جدید LINQ (پرس و جوی یکپارچه زبان) دارد که مطمئناً زندگی کدنویسی شما را آسان تر و لذت بخش تر می کند. بیایید به این روش های جدید بپردازیم: شمارش با، AggregateBy، و شاخص.
CountBy: Grouping Made Simple
اول از همه، ما آن را داریم CountBy
روش این افزودنی مفید به شما این امکان را می دهد که عناصر را با یک کلید مشخص گروه بندی کنید و سپس رخدادهای درون هر گروه را بشمارید. برای مواقعی که نیاز دارید به سرعت تعداد آیتمها را در یک مجموعه تعیین کنید، عالی است.
تصور کنید فهرستی از افراد با نام کوچک خود دارید و می خواهید بدانید که چند نفر هم نام دارند. در اینجا نحوه انجام این کار با آن آورده شده است CountBy
:
public record Person(string FirstName, string LastName);
List<Person> people = new()
{
new("Steve", "Jobs"),
new("Steve", "Carell"),
new("Elon", "Musk")
};
foreach (var group in people.CountBy(p => p.FirstName))
{
Console.WriteLine($"There are {group.Value} people with the name {group.Key}");
}
این کد خروجی خواهد داشت:
There are 2 people with the name Steve
There are 1 people with the name Elon
خیلی تمیز، درسته؟ گروه بندی و شمردن را نسیم می کند!
AggregateBy: تجمیع سفارشی
بعد، بیایید در مورد صحبت کنیم AggregateBy
روش این یکی از عملکرد CountBy
با اجازه دادن به شما برای انجام تجمیع سفارشی بر روی عناصر گروه بندی شده، یک قدم بیشتر است. شما می توانید یک مقدار دانه و یک تابع تجمع برای ترکیب عناصر در هر گروه ارائه دهید.
برای مثال، فرض کنید فهرستی از افراد با ویژگی عددی اضافی دارید و میخواهید این اعداد را برای هر گروه جمع کنید:
public record Person(string FirstName, string LastName, int SomeNumber);
List<Person> people = new()
{
new("Steve", "Jobs", 10),
new("Steve", "Carell", 100),
new("Elon", "Musk", 10)
};
var aggregated = people.AggregateBy(
person => person.SomeNumber,
0,
(acc, person) => acc + person.SomeNumber
);
foreach (var group in aggregated)
{
Console.WriteLine($"Sum of SomeNumber for key {group.Key} is {group.Value}");
}
این خروجی خواهد داشت:
Sum of SomeNumber for key 10 is 20
Sum of SomeNumber for key 100 is 100
با AggregateBy
، می توانید به راحتی بدون عرق کردن، تجمعات پیچیده را انجام دهید.
فهرست: دسترسی به موارد با شاخص
آخرین اما نه کم اهمیت، ما باید Index
روش این روش به شما این امکان را می دهد که هر آیتم را در یک مجموعه به همراه فهرست آن بازیابی کنید. زمانی که نیاز دارید موارد را بر اساس موقعیت آنها در مجموعه پردازش کنید بسیار مفید است.
در اینجا مثالی از نحوه استفاده از آن آورده شده است Index
روش:
public record Person(string FirstName, string LastName);
List<Person> people = new()
{
new("Steve", "Jobs"),
new("Steve", "Carell"),
new("Elon", "Musk")
};
foreach (var (index, person) in people.Index())
{
Console.WriteLine($"Entry {index}: {person}");
}
این خروجی خواهد داشت:
Entry 0: Person { FirstName = Steve, LastName = Jobs }
Entry 1: Person { FirstName = Steve, LastName = Carell }
Entry 2: Person { FirstName = Elon, LastName = Musk }
را Index
روش کار با موارد و موقعیت آنها در یک مجموعه را آسان می کند.
بسته بندی
متدهای جدید LINQ در سی شارپ 9-CountBy
، AggregateBy
، و Index
-ابزارهای قدرتمندی هستند که وظایف رایج را ساده می کنند و انعطاف پذیری بیشتری را در نحوه پردازش مجموعه ها فراهم می کنند. چه در حال شمارش آیتمها، انجام تجمیع سفارشی یا بازیابی آیتمها با شاخصهایشان باشید، این روشها تجربه LINQ را بهبود میبخشند و کد شما را واضحتر و مختصرتر میکنند.
بنابراین، ادامه دهید و این روش های جدید را در پروژه بعدی خود امتحان کنید. کد نویسی مبارک!