2014-01-22 3 views
0

Я несколько раз просматривал интернет в течение нескольких часов и не нашел ничего, что могло бы помочь мне в моей ситуации, которая, по моему мнению, является довольно распространенной.VB.net Count умножает конкретные элементы в списке

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

Чтобы объяснить, я хочу что-то там, где оно подсчитывает, сколько «чесночного хлеба» у меня есть в списке, а затем назначить его переменной «item1» и т. Д. Для всех предметов.

Приветствия

+2

Вы не могли бы разместить код? – Pietu1998

+0

Для этого вам не нужен элемент управления графическим интерфейсом, используйте List (Of String) для подсчета экземпляров элементов. Возможно, вы захотите опубликовать отфильтрованные результаты в ListBox или что-то еще. – Plutonix

ответ

0
Public Class MyListItem 
    Public Sub New(id As Integer, name As String) 
     LiId = id 
     LiName = name 
    End Sub 

    Public LiId As Integer 
    Public LiName As String 
End Class 

Private Sub Test() 
    Dim listbox2 As New ListBox() 

    Dim list As New List(Of MyListItem)() 
    list.Add(New MyListItem(1, "a")) 
    list.Add(New MyListItem(2, "a")) 
    list.Add(New MyListItem(3, "b")) 
    list.Add(New MyListItem(4, "c")) 
    listbox2.DataSource = list 
    listbox2.ValueMember = "LiId" 
    listbox2.DisplayMember = "LiName" 

    Dim countOfA = Aggregate itm In DirectCast(listbox2.DataSource, List(Of MyListItem)) 
      Where itm.LiName = "a" 
      Into Sum(1) 


End Sub 

Результат: countOfA = 2

+0

Привет, спасибо за код, я бы проголосовал за него, но я недостаточно высокого уровня :(Возможно ли, что вы могли бы объяснить части кода «mylistitem», поскольку я не совсем уверен, переименовывая это в элементы, которые я хочу в списке, поскольку VB говорит, что они не определены правильно? Cheers – user3212628

+0

Когда вы говорите «List.Items.Add», он принимает объект. Итак, когда вы делаете «... Добавить (myString) 'ваш объект является строкой, и вы можете это сделать, или вы можете добавить свой собственный объект, который имеет много свойств. Или, если у вас есть готовый набор элементов, вы можете установить эту коллекцию в качестве источника данных и отметить, какое свойство является значением и который будет отображаться, WinForms позаботится о его отображении. В этом примере (и он работает) я показал, как использовать коллекцию настраиваемых объектов для заполнения списка, как его получить и как заполнить единую группу и получить подсчитывать –

Смежные вопросы