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

بازدید42.2kپست ها2آخرین فعالیت7 سال پیش
0
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

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

سوال برنامه نویسی دارید؟

هیچ وقت در پرسیدن سوال شک نکنید

خوش آمدید

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