البرمجة

دمج قوائم C# بأحجام مختلفة

لحل هذه المشكلة في C#، يمكن استخدام الطريقة التالية لدمج القوائم غير المتساوية في قائمة واحدة بطريقة تتعامل بشكل صحيح مع طول كل منهما:

csharp
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main(string[] args) { var dataresource = new List<string> { "A", "B", "C" }; var datafixed = new List<string> { "D", "E", "F", "G", "H" }; // Find the maximum length between the two lists int maxLength = Math.Max(dataresource.Count, datafixed.Count); // Combine the lists using LINQ and Enumerable.Range var result = Enumerable.Range(0, maxLength) .Select(i => { string resource = i < dataresource.Count ? dataresource[i] : null; string fixedValue = i < datafixed.Count ? datafixed[i] : null; return new { Resource = resource, Fixed = fixedValue }; }) .ToList(); // Print the combined result Console.WriteLine("Resultlist = "); foreach (var item in result) { Console.WriteLine($"{item.Resource} {item.Fixed}"); } } }

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

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

بالطبع، سأواصل تطوير المقال لتوضيح الموضوع بشكل أكبر.

دمج القوائم غير المتساوية في C#

في بعض الأحيان، قد نحتاج في برمجية C# إلى دمج قوائم اثنتين لديها أحجام مختلفة إلى قائمة واحدة. هذا الأمر يمكن أن يكون تحدٍ لأن بعض العمليات العادية لدمج القوائم، مثل Enumerable.Zip()، لا تتعامل بشكل جيد مع القوائم غير المتساوية. لكن يمكننا استخدام بعض التقنيات للتعامل مع هذا الأمر.

الحل البرمجي

في الكود السابق، استخدمنا مجموعة من الخطوات لدمج القوائم بطريقة صحيحة:

  1. حساب الطول الأقصى: نحتاج إلى معرفة الطول الأقصى بين القوائم الاثنتين.
  2. الدمج باستخدام LINQ و Enumerable.Range: باستخدام Enumerable.Range، يمكننا إنشاء تسلسل من الأرقام من 0 إلى الطول الأقصى.
  3. استخراج العناصر بشكل صحيح: في كل خطوة، نحتاج إلى استخراج العنصر المناسب من كل قائمة ودمجهما معًا. في حالة عدم وجود عنصر في إحدى القوائم، نستخدم null.
  4. طباعة النتيجة: بعد الانتهاء من الدمج، يتم طباعة النتيجة بشكل مناسب.

الختام

بهذا الشكل، يمكنك الآن دمج قوائم غير متساوية الطول في C# باستخدام تقنيات برمجية مثل LINQ وEnumerable.Range. هذه الطريقة تسمح بتحقيق الغرض المطلوب بشكل فعال وصحيح، مما يزيد من قدرة برمجياتك على التعامل مع البيانات بطريقة أكثر مرونة وفعالية.

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