foreach Определенный элемент находится в ListBox - Winform, C# - PullRequest
0 голосов
/ 23 апреля 2020

Я хотел бы знать, как я могу узнать, сколько раз определенный элемент появляется в списке

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

К сожалению, это циклически перебирает весь список. Я хочу только определенный товар.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Предполагая, что listBox1.Items : List<string> or string[] ...

Вариант 1: listBox1.Items.Count(item => item == "YourCertainItem");

Вы можете использовать Linq

Вариант 2 : listBox1.Items.Where(item => item == "YourCertainItem").Count();

0 голосов
/ 23 апреля 2020

Это будет зависеть от типа данных, которые вы привязали к ListBox, и уникального идентификатора типов (или свойства, которое вы хотите использовать для сравнения).

Например, если вы связали список Строка со списком, вы можете использовать

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

Вместо этого, если вы связали коллекцию типов лиц с ListBox, где Person.Id - это свойство, которое вы хотите использовать для сравнения, вы можете использовать

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

Вам нужно начать с определения свойства, с которым вы будете сравнивать элементы в ListBox, после чего вы можете использовать Linq, как показано в примерах выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...