Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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
当对char的C#Hashset使用add方法时,它会自动进行排序_C#_Generics_Collections_Hashset - Fatal编程技术网

当对char的C#Hashset使用add方法时,它会自动进行排序

当对char的C#Hashset使用add方法时,它会自动进行排序,c#,generics,collections,hashset,C#,Generics,Collections,Hashset,我试图解决一个字符串操作问题,在这个问题上,我需要将字符存储在一个不允许重复的集合中。所以我使用HashSet,但是我注意到当我向其中添加字符时,HashSet会自动排序 例如:我在索引0和1中已经有了字符“b”和“c”,但当我添加字符“a”时,它被添加到索引0中,分别在索引1和2处向右移动字符“b”和“c” 我的印象是Hashset应该不会被排序。 请解释这种行为背后的原因,如果HashSet按预期工作,我还应该使用什么 谢谢我找到了这个: 来自: 哈希集集合未排序,不能包含重复的元素。如果应

我试图解决一个字符串操作问题,在这个问题上,我需要将字符存储在一个不允许重复的集合中。所以我使用HashSet,但是我注意到当我向其中添加字符时,HashSet会自动排序

例如:我在索引0和1中已经有了字符“b”和“c”,但当我添加字符“a”时,它被添加到索引0中,分别在索引1和2处向右移动字符“b”和“c”

我的印象是Hashset应该不会被排序。 请解释这种行为背后的原因,如果HashSet按预期工作,我还应该使用什么

谢谢

我找到了这个:

来自:

哈希集集合未排序,不能包含重复的元素。如果应用程序的顺序或元素复制比性能更重要,请考虑将列表类与排序方法一起使用。


顺序的改变是由于散列。考虑使用字典来存储索引和字符,字典键不能重复。

链接只回答一般是不鼓励的,而且不清楚这是如何回答问题的。它们“不排序”,因为你不应该依赖排序。以特定方式添加元素可能会导致它们按排序顺序返回,这是完全可能的,但这并不能保证,而且顺序可能会在实现版本之间发生变化。