لحل هذه المشكلة في C#، يمكن استخدام الطريقة التالية لدمج القوائم غير المتساوية في قائمة واحدة بطريقة تتعامل بشكل صحيح مع طول كل منهما:
csharpusing 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()
، لا تتعامل بشكل جيد مع القوائم غير المتساوية. لكن يمكننا استخدام بعض التقنيات للتعامل مع هذا الأمر.
الحل البرمجي
في الكود السابق، استخدمنا مجموعة من الخطوات لدمج القوائم بطريقة صحيحة:
- حساب الطول الأقصى: نحتاج إلى معرفة الطول الأقصى بين القوائم الاثنتين.
- الدمج باستخدام LINQ و Enumerable.Range: باستخدام
Enumerable.Range
، يمكننا إنشاء تسلسل من الأرقام من 0 إلى الطول الأقصى. - استخراج العناصر بشكل صحيح: في كل خطوة، نحتاج إلى استخراج العنصر المناسب من كل قائمة ودمجهما معًا. في حالة عدم وجود عنصر في إحدى القوائم، نستخدم
null
. - طباعة النتيجة: بعد الانتهاء من الدمج، يتم طباعة النتيجة بشكل مناسب.
الختام
بهذا الشكل، يمكنك الآن دمج قوائم غير متساوية الطول في C# باستخدام تقنيات برمجية مثل LINQ وEnumerable.Range. هذه الطريقة تسمح بتحقيق الغرض المطلوب بشكل فعال وصحيح، مما يزيد من قدرة برمجياتك على التعامل مع البيانات بطريقة أكثر مرونة وفعالية.