我有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();
}
}
}
答案 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++;
}
当然,您必须正确地从列表中的项目中提取名称。