Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中从hashset中检索对象#_C#_Hash - Fatal编程技术网

C# 在C中从hashset中检索对象#

C# 在C中从hashset中检索对象#,c#,hash,C#,Hash,可能重复: 我需要向一个集合中添加很多对象,并且我应该很快地检索它们。我知道的唯一方法就是使用散列。但是C#中的HashSet类不包含任何“Get”方法。dictionary类没有用处,因为在dictionary中查找对象非常耗时。哈希集基本上用于测试集合中是否包含对象。它是未排序和未排序的,没有可用于检索对象的索引 如果需要存储和检索对象,请使用其他集合类型,如列表、哈希表等。哈希集表示许多值。您可以使用Contains()查看集合中是否存在特定值。字典用于存储对象并通过其散列(键)检索对象

可能重复:


我需要向一个集合中添加很多对象,并且我应该很快地检索它们。我知道的唯一方法就是使用散列。但是C#中的HashSet类不包含任何“Get”方法。dictionary类没有用处,因为在dictionary中查找对象非常耗时。

哈希集基本上用于测试集合中是否包含对象。它是未排序和未排序的,没有可用于检索对象的索引


如果需要存储和检索对象,请使用其他集合类型,如列表、哈希表等。

哈希集表示许多值。您可以使用
Contains()
查看集合中是否存在特定值。字典用于存储对象并通过其散列(键)检索对象

使用系统;
使用System.Collections.Generic;
命名空间控制台应用程序1
{
班级计划
{
公共枚举
{
一,,
二,,
三,,
四
}
静态void Main(字符串[]参数)
{
HashSet test=新的HashSet();
添加测试(枚举4);
Console.WriteLine(“包含一个:”);
Console.WriteLine(test.Contains(EnumA.One));
Console.WriteLine(“包含四个:”);
Console.WriteLine(test.Contains(EnumA.Four));
Console.WriteLine();
Console.ReadLine();
返回;
}
}
}

这可能会在将来有所帮助:@Masoud:你能发布你的代码吗?可能更容易重建:-)由
GetHashCode
返回的哈希不是唯一的,因此您尝试执行的操作没有多大意义。我的问题很简单。我只想向集合中添加一个对象,并快速检索它。@Masoud,你是如何得出这样的结论的,即词典很耗时,而且没有检索O(1)中的数据?对不起,我不明白。下面是如何使用哈希表。System.Collections.Hashtable中有一个Hashtable类。(通用)hashtable类被称为
字典
。hashtable hsa no-get方法与hashset相同。字典太慢了。我需要一个真正的哈希,它可以快速检索添加的数据。@Masoud我建议您共享您想要实现的确切场景。这样我们就能更好地帮助你。
using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        public enum EnumA
        {
            One,
            Two,
            Three,
            Four
        }

        static void Main(string[] args)
        {
            HashSet<EnumA> test = new HashSet<EnumA>();

            test.Add(EnumA.Four);

            Console.WriteLine("Contains one:");
            Console.WriteLine(test.Contains(EnumA.One));
            Console.WriteLine("Contains four:");
            Console.WriteLine(test.Contains(EnumA.Four));
            Console.WriteLine();
            Console.ReadLine();

            return;
        }
    }
}