我有一个字符串集合的用例,它在应用程序的生命周期中永远不会改变,甚至在应用程序版本之间也不会改变。
我想对它做的唯一操作(除了填充它)是检查它是否包含给定的字符串。
列表需要可以从每个线程访问。
我需要这么快,所以我匆匆创造了这个:
private static readonly System.Collections.Concurrent.BlockingCollection<string> coll = new System.Collections.Concurrent.BlockingCollection<string>();
static WysiwygController()
{
coll.Add("aaa");
coll.Add("bbb");
coll.Add("ccc");
coll.Add("ddd");
}
并检查它是否包含字符串:
foreach (var item in coll)
{
if (item == something)
{
return true;
}
}
return false;
虽然它有效但我非常怀疑我为这项特殊任务选择了最有效的收藏。
是否有更适合此类型的集合类型?
答案 0 :(得分:0)
由于您只是从列表中读取,因此您可以使用任意数量的集合(即List,HashSet等)。
关于检查列表是否包含项目。我建议使用任何IEnumerable集合类型中提供的Contains方法。或者......您可以使用Linq查询...