البرمجة

تجميع وتحليل بيانات الأفراد باستخدام LINQ في C#

في عالم برمجة الحاسوب، تعد لغة الاستعلام اللامركزية (LINQ) أحد الأدوات الرائعة والمفيدة التي تسهل على المطورين العمل مع البيانات بطريقة مبسطة وفعّالة. تطلب الجملة التالية إنشاء استعلام LINQ يقوم بتجميع قائمة من الأشخاص (Persons) وتصنيفها حسب فئات العمر (0 إلى 10، 10 إلى 20، … 90 إلى 100)، ثم حساب عدد الأشخاص في كل فئة. كما أنها تطلب تصفية القائمة حسب الاسم، حيث يرغب المستخدم في الحصول على عدد الرجال الذين يحملون اسم “جون” في كل فئة عمرية.

لتحقيق ذلك باستخدام LINQ، يمكننا القيام بالتالي:

csharp
// القائمة التي سنقوم بتجميعها List persons = GetPersons(); // الاسم الذي نريد تصفية القائمة به string targetName = "John"; // استعلام LINQ var result = from person in persons where person.name == targetName group person by (person.age / 10) into ageGroup orderby ageGroup.Key select new { AgeRange = $"{ageGroup.Key * 10} to {(ageGroup.Key * 10) + 9}", PersonCount = ageGroup.Count() }; // عرض النتائج foreach (var group in result) { Console.WriteLine($"Age Range: {group.AgeRange}, Persons Count: {group.PersonCount}"); }

في هذا الاستعلام، قمنا بتصفية القائمة للأشخاص الذين يحملون اسم “جون”، ثم قمنا بتجميعهم حسب فئات العمر باستخدام معامل القسمة (age / 10). النتائج تم ترتيبها حسب الفئة العمرية، وتم عرض نطاق العمر وعدد الأشخاص في كل فئة. هذا يوفر للمستخدم رؤية واضحة حول كيفية توزيع الأفراد الذين يحملون اسم “جون” على مجموعات العمر المحددة.

المزيد من المعلومات

في هذا السياق، يعد استخدام لغة استفسار Language Integrated Query (LINQ) في لغة البرمجة C# أمرًا مفيدًا لتحقيق ما تريد. يساعد LINQ على كتابة استعلامات قوية وفعالة لتجميع البيانات بطريقة أكثر وضوحًا وسهولة.

لحل هذا الاستفسار، يمكنك استخدام LINQ لتحقيق تقسيم الأشخاص إلى فئات عمرية وعدد الأشخاص في كل فئة، وذلك بناءً على الشروط المحددة. فيما يلي استعلام LINQ يمكن أن يساعدك في تحقيق ذلك:

csharp
List people = // قائمة الأشخاص التي تملكها var result = from person in people where person.name == "John" // تصفية حسب الاسم group person by (person.age / 10) * 10 into ageGroup orderby ageGroup.Key select new { AgeRange = $"{ageGroup.Key} to {ageGroup.Key + 9}", PersonCount = ageGroup.Count() }; foreach (var item in result) { Console.WriteLine($"Age Range: {item.AgeRange}, Person Count: {item.PersonCount}"); }

هذا الاستعلام يقوم بتجميع الأشخاص حسب الفئات العمرية وعدد الأشخاص في كل فئة، ويمكنك تعديله حسب احتياجاتك الخاصة. يوفر هذا الاستعلام إجابة دقيقة لاستفسارك ويستخدم لغة طبيعية في كتابته، مما يساعد على فهمه بشكل أفضل وتوضيح الفكرة بشكل شامل.

زر الذهاب إلى الأعلى