foreach 某些项目在列表框中 - Winform,C#
Posted
技术标签:
【中文标题】foreach 某些项目在列表框中 - Winform,C#【英文标题】:foreach Certain item is in a ListBox - Winform, C# 【发布时间】:2020-08-06 04:17:30 【问题描述】:我想知道如何找到某个项目在列表框中出现的次数
foreach (string Item in listBox1.Items)
Console.WriteLine("1 Item");
Console.ReadLine();
不幸的是,它会循环遍历整个列表框。我只想要某件物品。
【问题讨论】:
如果列表项是字符串类型,只需Console.WriteLine(listBox1.Items.Cast<string>().Count(x => x == "1 Item"));
。
这能回答你的问题吗? How to count the number of elements that match a condition with LINQ
【参考方案1】:
假设listBox1.Items : List<string> or string[]
...
选项 1: listBox1.Items.Count(item => item == "YourCertainItem");
你可以使用 Linq
选项 2: listBox1.Items.Where(item => item == "YourCertainItem").Count();
【讨论】:
【参考方案2】:这取决于您绑定到 ListBox 的数据类型和类型唯一标识符(或您要用于比较的属性)。
例如,如果您已将一个字符串列表绑定到列表框,则可以使用
var result = listBox.Items.OfType<String>().Count(x=>x == valueToSearch);
相反,如果您已将 Person 类型的 Collection 绑定到 ListBox,其中 Person.Id 是您要用于比较的属性,您可以使用
var result = listBox1.Items.OfType<Person>().Count(x=>x.Id == personToSearch.Id);
您需要首先定义比较 ListBox 中项目的属性,然后您可以使用 Linq,如上面的示例所示。
【讨论】:
以上是关于foreach 某些项目在列表框中 - Winform,C#的主要内容,如果未能解决你的问题,请参考以下文章