Asp.net 如何编写contains语句来匹配类的成员?

Asp.net 如何编写contains语句来匹配类的成员?,asp.net,vb.net,if-statement,conditional,contains,Asp.net,Vb.net,If Statement,Conditional,Contains,如果我有以下结构: 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

如果我有以下结构:

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的工作吗?

这个怎么样:

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
       ...
我的自行车生锈了。请原谅语法错误

这个怎么样:

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版本:

If myUsers.Any(Function(i) i.ID = "1") Then ...
以下是VB版本:

If myUsers.Any(Function(i) i.ID = "1") Then ...

你为什么不用字典呢

var myUserDict = new Dictionary<String, UserData>
if(myUserDict.ContainsKey("1"))..
var myUserDict=新字典
如果(myUserDict.ContainsKey(“1”))。。

当然,只有当您要对所选用户执行任何操作时才有意义。

为什么不使用字典

var myUserDict = new Dictionary<String, UserData>
if(myUserDict.ContainsKey("1"))..
var myUserDict=新字典
如果(myUserDict.ContainsKey(“1”))。。

当然,只有当您要对所选用户执行任何操作时才有意义。

我将不止一次执行此操作,但它是在
RowDataBound
事件中执行的。。。所以任何类型的优化都会被反复运行。。。除非我使用了静态成员?我是个新手。NET@afuzzyllama:您应该能够在与myUsers相同的范围内创建哈希集。如果myUsers是根据事件中的数据计算的,那么创建哈希集可能没有意义。
我得到的结论是:“Any”不是“System.Collections.Generic.List(UserData)”的成员。
。不过我会试试HashSet的想法。@afuzzyllama:“Any”是一个扩展方法。您需要在文件中包含
System.Linq
命名空间。我将不止一次这样做,但它是在
RowDataBound
事件中。。。所以任何类型的优化都会被反复运行。。。除非我使用了静态成员?我是个新手。NET@afuzzyllama:您应该能够在与myUsers相同的范围内创建哈希集。如果myUsers是根据事件中的数据计算的,那么创建哈希集可能没有意义。
我得到的结论是:“Any”不是“System.Collections.Generic.List(UserData)”的成员。
。不过我会试试HashSet的想法。@afuzzyllama:“Any”是一个扩展方法。您需要在文件中包含
System.Linq
命名空间。我得到的信息是:
'Any'不是'System.Collections.Generic.List(UserData)的成员。
我得到的信息是:
'Any'不是'System.Collections.Generic.List(UserData)的成员。
您的'Any'不是'System.Collections.Generic.List(UserData)的成员(关于UserData)问题:您正在使用System.Linq命名空间吗?不……不,我没有。我假设这就是为什么我没有看到
Any()
函数的原因。另外,我正在以我现在的方式进行操作,因为我正在将数据绑定到GridView,而您的'Any'不是'System.Collections.Generic.List(UserData)的成员问题:您正在使用System.Linq命名空间吗?不……不,我没有。我假设这就是为什么我没有看到
Any()
函数的原因。此外,我正在以我现在的方式进行操作,因为我正在将数据绑定到GridView