پیدا کردن بیشترین آیتم تکرار شده در یک لیست

#C

توسط exe در 5 سال پیش
0 1k 2 4 سال پیش
exescarface
0

سلام دوستان کد زیر بیشترین آیتم تکرار شده تو یه لیست باکس با مقدارش رو میگه.حالا اگه ما بخوایم به ترتیب 3 تا آیتمی که بیشترین تکرار رو دارن بدست بیاریم باید چیکار کنیم [CSHARP] private void button2_Click(object sender, EventArgs e) { int count =0; int maxcount =0; string result = ""; for(int i = 0;i<listBox1.Items.Count;i++) for (int j = 0; j < listBox1.Items.Count; j++) { if (listBox1.Items[i] == listBox1.Items[j]) count++; if (j == listBox1.Items.Count - 1) { if (count > maxcount) { maxcount = count; result = listBox1.Items[i].ToString();

                    }
                    else if (count == maxcount)
                    {
                        if(!result.Contains(listBox1.Items[i].ToString()))
                        result += "," + listBox1.Items[i].ToString();
                    }
                    count = 0;
                }
            }
        MessageBox.Show("Bishtarin : " + result + "\nTedad : " + maxcount.ToString() + "");
    }

[/CSHARP]

0

LINQ: [CSHARP] var list = listBox1.Items.OfType<string>(); var result = list.GroupBy(i => i) .OrderByDescending(g => g.Count()) .Select(g => g.Key) .Take(3);

        foreach (var item in result)
        {
            Console.WriteLine(item);
        }

[/CSHARP]

آموزش LINQ

0

ميشه يكم توضيح بدين كه اين كد رو چجوري بايد استفاده كرد.متوجه نشدم

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید