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

时间:2013-02-13 15:27:38

标签: c# .net c visual-studio-2010 vb.net-2010

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

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

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

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

如果我在列表中选择“Peter”而Peter在该列表中选择了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();
    }
}

}

2 个答案:

答案 0 :(得分: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();

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

答案 1 :(得分:0)

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

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

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