如何将值从一个哈希集分配给另一个?

香蕉时间

假设您有两个列表,List1List2

要将值从复制List2List1,我必须这样做:

List1 = List2.ToList();

否则,List1将成为List2并且始终具有相同的值。

但是,将两个列表都更改为HashSet之后,相同的代码将出现以下错误:

  Cannot convert source type 'System.Collections.Generic.List<int>' to target type 'System.Collections.Generic.HashSet<int>'

删除.ToList()作品,但不会导致HashSet2成为HashSet1参考,所以HashSet1总是具有相同的值,而不是一次复制吗?

凯斯·贾德

这不会将值从一个列表复制到另一个列表:

List1 = List2.ToList();

它使用List2并从中创建一个新列表,然后将新列表分配给引用List1。简要地说,您的内存中有3个列表(您的List1,List2和通过在List2上调用ToList()创建的新列表),而不是2。在操作结束时,您以前在List1中拥有的所有内容都会丢失。

List1 = new List<string> { "list1" };
List2 = new List<string> { "list2" };
List1 = List2.ToList(); //List1 now has an item "list2"
List1.Add("list1new");
List2.Add("list2new");

现在,列表如下所示:

List1: "list2", "list1new"
List2: "list2", "list2new"

如果要将项目从List2复制到List1,则可以:

List1.AddRange(List2);

这将使您的列表看起来像(使用上面的其他代码行):

List1: "list1", "list2", "list1new"
List2: "list2", "list2new"

它不适用于HashSet,因为HashSet和List是不同的东西。您不能再说了:

HashSet1 = HashSet2.ToList();

比你可以说:

HashSet1 = new List<string>();

如果您有两个哈希集,并且想要将所有内容放入一个哈希集中,则可以将其放入另一个哈希集中:

Hash2.ToList().ForEach(x => Hash1.Add(x));

这使用LINQ将Hash2转换为列表,然后使用List.ForEach,它将在列表中的每个项目上调用一个方法,因此实质上遍历列表和每个列表项x,在Hash1上调用Add(x)。

HashSet还具有以下功能:

Hash1.UnionWith(Hash2);

在这两个操作中的任何一个结束时,Hash1都将包含其之前所做的所有操作,以及来自Hash2的所有尚不存在的内容。您应注意,实际数据项本身并未克隆,因此,如果将其作为“ Hash”(例如“人”)的哈希,则可以有两个哈希集,每个哈希集都引用约翰·史密斯,但如果要通过一个哈希集来更改他的名字,则另一个哈希集也将显示更改,因为即使有两个HashSet,内存中也只有一个John Smith对象

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python将值从一个变量分配给另一个

来自分类Dev

如何将特定属性从一个对象分配给另一个

来自分类Dev

HTML - 如何将文本值分配给另一个属性的值?

来自分类Dev

如何将公式的值(包含变量)分配给另一个变量

来自分类Dev

如何将一个函数返回的值分配给另一个函数

来自分类Dev

如何将一个枚举值强制转换/分配给另一个枚举

来自分类Dev

将值从一个ng模型分配给另一个ng模型

来自分类Dev

如何将一个模型的字段的值分配给另一模型的字段?

来自分类Dev

如何将变量列表分配给另一个列表

来自分类Dev

如何将Angular @Input值分配给另一个变量并填充到子代中?

来自分类Dev

JavaScript:如何将button元素的值分配给另一个div元素?

来自分类Dev

如何将值onClick从不同组件分配给React中的另一个组件

来自分类Dev

如何将文本框值分配给 wpf 中的另一个类

来自分类Dev

如何将一个JavaScript文件中的变量分配给另一个JS File?

来自分类Dev

如何将一个数组中的值分配给另一个数组n次

来自分类Dev

如何将一个char中的值分配给一个指针?

来自分类Dev

Perl在哈希哈希中搜索值,然后重新分配给另一个哈希

来自分类Dev

Perl在哈希哈希中搜索值,然后重新分配给另一个哈希

来自分类Dev

使用循环按等级将值从一个数据帧分配给另一个数据帧

来自分类Dev

根据主题编号将值从一个数据框分配给另一个数据框

来自分类Dev

C - 如何将多个值分配给哈希图中的同一个键?

来自分类Dev

将一个数组中的值分配给另一个数组中的值

来自分类Dev

如何将自身分配给自身的另一个实例

来自分类Dev

如何将自身分配给自身的另一个实例

来自分类Dev

如何将我的选择选项分配给另一个变量

来自分类Dev

如何获取editorfor的值并将此值分配给另一个editorfor?

来自分类Dev

根据另一个列值将增量种子分配给字段

来自分类Dev

将产品属性值分配给magento中的另一个产品属性

来自分类Dev

将String变量的值分配给另一个String变量

Related 相关文章

  1. 1

    Python将值从一个变量分配给另一个

  2. 2

    如何将特定属性从一个对象分配给另一个

  3. 3

    HTML - 如何将文本值分配给另一个属性的值?

  4. 4

    如何将公式的值(包含变量)分配给另一个变量

  5. 5

    如何将一个函数返回的值分配给另一个函数

  6. 6

    如何将一个枚举值强制转换/分配给另一个枚举

  7. 7

    将值从一个ng模型分配给另一个ng模型

  8. 8

    如何将一个模型的字段的值分配给另一模型的字段?

  9. 9

    如何将变量列表分配给另一个列表

  10. 10

    如何将Angular @Input值分配给另一个变量并填充到子代中?

  11. 11

    JavaScript:如何将button元素的值分配给另一个div元素?

  12. 12

    如何将值onClick从不同组件分配给React中的另一个组件

  13. 13

    如何将文本框值分配给 wpf 中的另一个类

  14. 14

    如何将一个JavaScript文件中的变量分配给另一个JS File?

  15. 15

    如何将一个数组中的值分配给另一个数组n次

  16. 16

    如何将一个char中的值分配给一个指针?

  17. 17

    Perl在哈希哈希中搜索值,然后重新分配给另一个哈希

  18. 18

    Perl在哈希哈希中搜索值,然后重新分配给另一个哈希

  19. 19

    使用循环按等级将值从一个数据帧分配给另一个数据帧

  20. 20

    根据主题编号将值从一个数据框分配给另一个数据框

  21. 21

    C - 如何将多个值分配给哈希图中的同一个键?

  22. 22

    将一个数组中的值分配给另一个数组中的值

  23. 23

    如何将自身分配给自身的另一个实例

  24. 24

    如何将自身分配给自身的另一个实例

  25. 25

    如何将我的选择选项分配给另一个变量

  26. 26

    如何获取editorfor的值并将此值分配给另一个editorfor?

  27. 27

    根据另一个列值将增量种子分配给字段

  28. 28

    将产品属性值分配给magento中的另一个产品属性

  29. 29

    将String变量的值分配给另一个String变量

热门标签

归档