我有大约10,000条记录要保留在内存中的集合中并对其执行LINQ查询。此集合应该可供应用程序域中的所有用户使用,并且可以同时访问。我正在寻找一个支持多线程的.NET集合,可以异步高效地查询而不会出现任何线程问题。关于为此决定收藏的任何建议?
抱歉 - 这只是阅读,没有更新。它不应该在.NET 4.0中
答案 0 :(得分:4)
您需要更新吗?如果没有,任何通常的嫌疑人(例如List<T>
或数组)应该没问题。如果你想要查找自然键,你可能想要使用字典,但如果它真的只是一个集合,那么列表应该没问题。
编辑:看起来这个答案的其余部分与这个特定问题无关,但是我会把它留给其他需求略有不同的人。
如果你做需要更新它 - 如果你能够使用.NET 4 - 你至少应该考虑 ConcurrentBag
。请记住,它是无序的,如果你迭代它并同时修改包,你将看不到更改(根据the docs,这是一个快照),但如果这没关系,它很可能是什么你好吗。
如果那不是你想要的,那么看一下System.Collections.Concurrent
namespace中的其他集合 - 再次,这就是.NET 4的全部。