2013-11-27 2 views
0

есть способ вызова определенного списка списков без необходимости их (или петли) их всех?номер вызывающего списка, где var = значение

легче понять на примере ....

позволяет говорить

callList(5).key = "1234" 
callList(5).callOpened = "11/26/13" 

Теперь я хочу сделать что-то вроде

textbox_callOpened.text = callList(where key = "1234").callOpened 

я также должны знать, что индекс это было, потому что есть еще много элементов, которые мне нужно вывести тоже.

ответ

0

Вы можете использовать LINQ. Добавить Imports System.Linq в верхней части файла и использовать First метод с lambda expression в качестве предиката, чтобы получить то, что вам нужно:

' that gives you item matching your predicate ' 
Dim item = callList.First(Function(x) x.Key = "1234") 

' you can use it to set the property ' 
textbox_callOpened.text = item.callOpened 
+0

не забывайте null reference if not found – Fredou

+1

Если элемент не найден, это не будет 'NullReferenceException'. Это будет 'InvalidOperationException'. – MarcinJuraszek

+0

true, с «первым» он не вернет нулевой объект, если ни один не найден. Я забыл об этом. – Fredou

0

псевдо-код, не проверял, но должно работать

dim something = callList.firstordefault(function(d) d.key = "1234") 

    if something is not nothing then 
     textbox_callOpened.text = something.callOpened 
    else 
     'cant find an element with key 1234 
    end if 
+0

Пожалуйста, вы можете объяснить? я не понимаю функции (г) d.key прямо сейчас я делаю что-то вроде .... Dim A As Integer Для I = 0 To calllist.Count If CallList (I) .key = "1234" Затем a = i End If Next – Ishey4

+0

@ Ishey4, я не буду пытаться объяснить, как работает лямбда, но я дам вам эту ссылку, которая объясняет это; http://msdn.microsoft.com/en-us/library/vstudio/bb531253.aspx – Fredou

+0

wow! мне придется пройти через это с помощью гребня .. похоже, много информации там ... ty я забираю его обратно .. не так много ... похоже, как мини-функция или дополнительный плюс – Ishey4

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