البرمجة

تكرار القيم في قائمة C# ListBox: حلاً لمشكلة التكرار في القاموس

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

لحل هذه المشكلة، يمكنك تحديث الشيفرة كما يلي:

csharp
private void button1_Click(object sender, EventArgs e) { String name = this.textBox1.Text; int testNumber = int.Parse(textBox2.Text); submittedTests.Add(name, testNumber); listBox1.Items.Clear(); // قم بمسح العناصر السابقة في ListBox foreach (var entry in submittedTests) { listBox1.Items.Add(entry.Key + " " + entry.Value); } }

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

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

في الكود الذي قدمته، يبدو أن هناك خطأ يتسبب في تكرار نفس القيمة في القائمة (ListBox) بدلاً من إظهار القيم المختلفة التي تم إضافتها إلى القاموس (Dictionary). السبب واضح عند فحص الكود.

عند كل مرة يتم فيها النقر على الزر (button1_Click)، يتم إضافة الاسم (name) والرقم الاختباري (testNumber) إلى القاموس (submittedTests)، ومن ثم يتم عرض كل العناصر في القاموس في قائمة (ListBox). ومع ذلك، هنا يكمن الخطأ. في كل دورة من الحلقة التي تعرض العناصر في القاموس، يتم استخدام نفس الاسم (name) ونفس الرقم الاختباري (testNumber)، وبالتالي يتم عرض نفس القيمة في القائمة.

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

csharp
private void button1_Click(object sender, EventArgs e) { String name = this.textBox1.Text; int testNumber = int.Parse(textBox2.Text); submittedTests.Add(name, testNumber); // قم بمسح عناصر ListBox قبل إعادة ملء القائمة listBox1.Items.Clear(); foreach (var entry in submittedTests) { // استخدم مفتاح وقيمة القاموس في عرض العنصر في القائمة listBox1.Items.Add(entry.Key + " " + entry.Value); } }

بتلك الطريقة، ستظهر القيم الفريدة في القائمة ولن تكون هناك تكرار لنفس القيمة.

مقالات ذات صلة

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

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر