C# 何时使用HashSet<&燃气轮机;
我有一个小样品C# 何时使用HashSet<&燃气轮机;,c#,asp.net,C#,Asp.net,我有一个小样品 //Class public class GetEntity { public string name1 { get; set; } public string name2 { get; set; } public GetEntity() { } } 以及: 代码工作正常。同样的任务是通过字典和列表完成的。但我想知道我们何时使用哈希集、字典或列表。是否只有性能问题或任何其他我不理解的事情。谢谢。我自己不是C#人,但以下应该是区别 如果我错了,请纠正我 Ha
//Class
public class GetEntity
{
public string name1 { get; set; }
public string name2 { get; set; }
public GetEntity() { }
}
以及:
代码工作正常。同样的任务是通过字典和列表完成的。但我想知道我们何时使用哈希集、字典或列表。是否只有性能问题或任何其他我不理解的事情。谢谢。我自己不是C#人,但以下应该是区别
如果我错了,请纠正我
HashSet只接受唯一的值,值可以通过索引随机访问,在固定时间内工作
字典将采取键值对,值可以通过键名随机访问,键名不能重复。这也是一个非常快的DS。工作时间固定
列表将采用n个值,即使它们不是唯一的,也必须按顺序访问这些值。在最坏的情况下,插入和检索的时间复杂度为o(n)我自己不是一个C#guy,但以下应该是区别
如果我错了,请纠正我
HashSet只接受唯一的值,值可以通过索引随机访问,在固定时间内工作
字典将采取键值对,值可以通过键名随机访问,键名不能重复。这也是一个非常快的DS。工作时间固定
列表将采用n个值,即使它们不是唯一的,也必须按顺序访问这些值。在最坏的情况下,插入和检索的时间复杂度为o(n)
我想知道我们何时使用HashSet、Dictionary或
它们都有不同的用途,用于不同的场景
哈希集
当您想要拥有具有唯一元素的集合时使用。HashSet存储唯一元素的列表,不允许重复
字典
当您希望对唯一键具有值时使用。字典中的每个元素都有两部分:一个(唯一)键和一个值。您可以在其中存储一个唯一的键(就像Hashset一样),此外,您还可以针对该唯一键存储一个值
名单
只是一个简单的元素集合。您可以在其中包含重复项。
我想知道我们何时使用HashSet、Dictionary或
它们都有不同的用途,用于不同的场景
哈希集
当您想要拥有具有唯一元素的集合时使用。HashSet存储唯一元素的列表,不允许重复
字典
当您希望对唯一键具有值时使用。字典中的每个元素都有两部分:一个(唯一)键和一个值。您可以在其中存储一个唯一的键(就像Hashset一样),此外,您还可以针对该唯一键存储一个值
名单
只是一个简单的元素集合。您可以在其中包含重复项。集合不包含重复值。集合不包含重复值。它们都称为集合,通常位于命名空间System.collections.Generic中 当使用某个数据结构时,基本上需要了解它们支持哪些操作。对于HashSet,它基本上是数学上的一个集合,支持高效的添加、删除和快速判断集合中是否存在元素。给定它是一个集合,元素在哈希集合中必须是唯一的 对于字典,它基本上是一个映射结构,即一组键值对。字典提供了对具有给定键的键值对的高效查询,还提供了对键值对的添加/删除
列表是元素的有序集合。与哈希集不同,判断列表中元素的存在效率很低。与字典不同,内部数据结构不是键值对,而是简单的对象。另一个区别是,您可以使用索引(如列表[3])有效地访问列表中的元素。(虽然LinkedList不是这样)它们都称为集合,通常位于命名空间System.collections.Generic中 当使用某个数据结构时,基本上需要了解它们支持哪些操作。对于HashSet,它基本上是数学上的一个集合,支持高效的添加、删除和快速判断集合中是否存在元素。给定它是一个集合,元素在哈希集合中必须是唯一的 对于字典,它基本上是一个映射结构,即一组键值对。字典提供了对具有给定键的键值对的高效查询,还提供了对键值对的添加/删除 列表是元素的有序集合。与哈希集不同,判断列表中元素的存在效率很低。与字典不同,内部数据结构不是键值对,而是简单的对象。另一个区别是,您可以使用索引(如列表[3])有效地访问列表中的元素。(虽然LinkedList不是这样)有用的阅读-有用的阅读-
public void GetHash()
{
HashSet objHash = new HashSet();
GetEntity obj = new GetEntity();
obj.name1 = "Ram";
obj.name2 = "Shyam";
objHash.Add(obj);
foreach (GetEntity objEntity in objHash)
{
Label2.Text = objEntity.name1.ToString() + objEntity.name2.ToString();
}
}