【发布时间】:2021-03-03 15:49:10
【问题描述】:
我有整数列表,我想知道我的列表中存在一个值多次。
最好的方法是什么?
使用LookUp 或dictionary 或HashMap 或...捕获数据?
例子:
List<int> samples = {5,4,6,2,1}
// if(2 exist in samples) do something ...
// if(3 exist in samples) do something ...
// if(5 exist in samples) do something ...
// if(8 exist in samples) do something ...
// if(13 exist in samples) do something ...
// if ....
【问题讨论】:
-
“几次” - 列表的内容会在两次测试之间改变吗?
-
您可以使用
HashSet<int>,但您可能会通过一些额外的细节/上下文得到更有意义的答案。 -
否,列表内容未更改
-
最简单的方法可能就是使用 .Contains({item}) if (samples.Contains(2)){ do something }
-
"best" 是上下文相关的; “几次”是多少次?一打:只需使用
Contains。很多很多次,经常在一个紧密的循环中?您需要优化的数据结构,例如HashSet<T>,或者至少您希望对其进行排序并使用二项式搜索进行检查。当然,也取决于数值的实数;如果它真的只有 1,2,4,5,6 - 只需使用switch块:您只需要针对大量测试用例进行优化