通常我用哈希表:
if(!myHash.Contains(someId))
{
// insert to hash
}
Run Code Online (Sandbox Code Playgroud)
如果我有一个List,我该怎么检查使用contains?
现在我只是创建一个用户ID的哈希表,并检查它,但有没有办法只使用List?
你可以使用List<T>.Contains- 只要知道它将是一个线性搜索,即O(N)而不是a的O(1)HashMap.如果您的列表不是太大,那么它不太可能是一个问题.当然,Equals除非您对参考标识感到满意,否则您仍需要适当覆盖这些项目.
如果您有一个大型列表,您需要对其进行重复包含测试,您可能只想HashSet<T>从现有列表中创建一个.如果您要随意操作列表,您可能希望将列表和集合封装在您自己的集合中.你需要弄清楚你想要的语义 - 如果你两次添加相同的ID,你会想要发生什么?第二次通话应该被忽略吗?如果你能在不这样做的情况下离开,那就更好了:)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |