0

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

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

当我按下另一个按钮时,应该在一个文本框中(我已经完成)。显示我在列表中选择的名称。但!棘手的部分来了。

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

如果我在列表中选择“彼得”并且彼得在该列表中出现 3-4 次。我怎样才能把它写出来让它显示3次?我的意思是 3 (int) 次。

这是代码:

    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();
    }
}

}

4

2 回答 2

0

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

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

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

于 2013-02-13T15:33:23.730 回答
0

这是一种解决方案。

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();

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

于 2013-02-13T15:30:32.047 回答