从列表框项目到具有重复项目的文本框

本文关键字:项目 文本 列表 | 更新日期: 2023-09-27 17:58:54

我有1个列表框、2个按钮和2个文本框。当我按下一个按钮时,我的列表框显示+我的所有数据。

在列表框中,我有大约30个名字。里面有不同的名字。有些名字是一样的。

当我按下另一个按钮时,在一个文本框中也是如此(我已经这样做了)。显示我在列表中选择的名称。但是棘手的部分来了。

我想在最后一个文本框中有一个列表框中的名称,该列表框可以计算所有同名的名称。

如果我在列表中选择了"彼得",而彼得在该列表中的次数为3-4次。我怎样才能把它写出来,让它显示3次?我的意思是3次。

这是代码:

    public Form1()
    {
        InitializeComponent();

    }
    private void button1_Click(object sender, EventArgs e)
    {
        _items.Add("Per Lindmark, 2012-05-01");
       // add more items
        _items.Add("Elin Ivarsson, 2012-05-13");
        listBox1.DataSource = _items;
    }
    private void button2_Click(object sender, EventArgs e)
    {
        textBox1.Text = listBox1.SelectedItem.ToString();
    }
}

}

从列表框项目到具有重复项目的文本框

这里有一个解决方案。

var name = txtBox1.Text.Split(' ')[0];
if (string.IsNullOrEmpty(name))
{
     return;
}
var items = listBox1.DataSource as List<string>;
var count = items.Count(x => x.Split(' ')[0] == name);
textBox2.Text = count.ToString();

我希望我理解你的问题:)

您可以迭代列表中的所有项目并比较名称:

int counter = 0;    
foreach (string item in listBox1.Items)
{
    if (item == name)
        counter++;
}

当然,您必须正确地从列表中的项目中提取名称。