Как написать оператор в соответствии с членом класса?
Если у меня есть следующая структура:
Public Class UserData
Public ID As String
Public Name As String
End Class
Как я могу выбрать его в условном, как это?
Dim myUsers As New System.Collections.Generic.List(Of UserData)
If myUsers.Contains(.ID = "1") = True Then
...
я знаю это myUsers.Contains(.ID = "1")
Совершенно неправильно, но мне интересно, как сделать что-то подобное? Является ли это возможным? Это работа для LINQ?
3 ответа
Решение
Как насчет этого:
If myUsers.Any(Function(u) u.ID = "1") Then
...
Конечно, если вы собираетесь делать это более одного раза, вам лучше создать набор для поиска:
Dim myUserSet = New HashSet(Of String)(myUsers.[Select](Function(u) u.ID))
For Each userId In selectedUserIds
If myUserSet.Contains(userId) Then
...
Мой VB ржавый. Пожалуйста, прости синтаксические ошибки
Вот версия VB:
If myUsers.Any(Function(i) i.ID = "1") Then ...
Почему вы не используете словарь
var myUserDict = new Dictionary<String, UserData>
if(myUserDict.ContainsKey("1"))..
Разумеется, имеет смысл только если вы собираетесь что-то делать с выбранным пользователем.