示例:我在List中有很多FileInfo对象。可能10000s。我需要使用其FullName属性检查列表是否包含给定的FileInfo对象。我甚至对索引都不感兴趣,我只是想知道它是否存在。天真的方法是For ...接下来,不过应该有更快的方法。
所以这就是这个问题的一般内容:
Class Foo
Friend SomeString as String
Friend SomeInteger as Integer
End Class
Module Work
Dim FooList as New List(Of Foo)
Friend Function IsInList(aString as String) as Boolean
'The question is what to do here other than the below:
For i = 0 to FooList.Count - 1
If (FooList(i).SomeString = aString) Then Return True
Next
Return False
End Function
End Module
上述方法有哪些?我的意思是我可以使用一个单独的Dictionary(Of String,Integer)将Foo中的SomeString键映射到FooList中特定Foo的索引,但这相当丑陋。
也许有一个轻量级的Dictionary / List组合类?
理想情况下,我想写这样的东西:
FooList.IndexOf(SomeStringValue)
即使实际列表是Foo列表,也不是字符串列表。
编辑:理想情况下,将提供.NET 2.0解决方案。
任何建议都将不胜感激。