foreach 某些项目在 ListBox 中 - Winform、C#

foreach Certain item is in a ListBox - Winform, C#

我想知道如何找到某个项目在列表框中出现的次数

foreach (string Item in listBox1.Items) 
{
    Console.WriteLine("1 Item");
}
Console.ReadLine();

不幸的是,这会循环遍历整个列表框。我只想要某件商品。

这取决于您绑定到 ListBox 的数据类型和唯一标识符的类型(或您要用于比较的 属性)。

例如,如果您将一个字符串列表绑定到列表框,您可以使用

var result = listBox.Items.OfType<String>().Count(x=>x == valueToSearch);

相反,如果您已将一组人员类型绑定到列表框,其中 Person.Id 是您要用于比较的 属性,您可以使用

var result = listBox1.Items.OfType<Person>().Count(x=>x.Id == personToSearch.Id);

您需要首先定义 属性 您用来比较 ListBox 中的项目的依据,之后您可以使用 Linq,如上例所示。

假设 listBox1.Items : List<string> or string[] ...

选项 1: listBox1.Items.Count(item => item == "YourCertainItem");

您可以使用 Linq

选项 2: listBox1.Items.Where(item => item == "YourCertainItem").Count();