Как написать оператор в соответствии с членом класса?

Если у меня есть следующая структура:

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"))..

Разумеется, имеет смысл только если вы собираетесь что-то делать с выбранным пользователем.

Другие вопросы по тегам