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();
我想知道如何找到某个项目在列表框中出现的次数
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();