最佳查找数据结构,仅存储密钥(无值的字典)
.Net中具有高性能查找的最佳数据结构是什么,如二叉树实现,但只存储密钥(字符串键)?
我们只需要检查集合中是否存在某个键。 喜欢:
Dictonary myKeys; myKeys.Add("key1", null); myKeys.Add("key2", null); // Dozens or hundreds keys Assert.IsTrue(myKeys.Contains("key1"));
HashSet
(在System.Collections.Generic
):
HashSet是一个包含唯一元素的无序集合。 它具有标准的集合操作Add,Remove,Contains,但由于它使用基于散列的实现,因此这些操作是O(1)。
例如
HashSet evenNumbers = new HashSet (); HashSet oddNumbers = new HashSet (); for (int i = 0; i < 5; i++) { // Populate numbers with just even numbers. evenNumbers.Add(i * 2); // Populate oddNumbers with just odd numbers. oddNumbers.Add((i * 2) + 1); } if (evenNumbers.Contains(2)) { Console.WriteLine("2 is even."); }
- 介绍HashSet
- HashSet与List性能
- 如何将ImageSource设置为Xamarin.Forms.Button?
- UpdateModel的ASP.NET MVC 2问题
- WebApi2中的NHibernate – 更新和删除问题
- 如何使用标头获取XML(<?xml version =“1.0”…)?
- 如何使用c#以编程方式从Word文档中删除一行?
- 与BeginGetRequestStream / EndGetRequestStream的TaskFactory.FromAsync挂起
- 如何委托telerik网格视图从每个子页面的父页面调用常用方法?
- NamedPipeServerStream / async可靠的断开连接问题
- 如何在asp.net中使用线程?