C#中使用List<struct>的问题
问题描述:
一个存放struct的list,如果将其中struct数据再次添加到另外一个list中时,
更改第二个list中struct中的值,会不会影响第到第一个list呢?
现在用代码来证明:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; namespace CSharp { class Program { public int a = 1; public int b = 2; internal struct Info { public int c; public int d; } public static void Main(string[] args) { ListCopy2(); } public static void ListCopy2() { //第一个list,元素类型为struct,内部包含两个整形值 List<Info> ls = new List<Info>(); Info info = new Info(); //初始化这两个值 info.c = 2; info.d = 3; //将这个struct加入list中 ls.Add(info); //第二个list,元素类型与第一个list中的元素类型一样 List<Info> ls2 = new List<Info>(); //将第一个list中的第一个元素添加到第二个list中 ls2.Add(ls[0]); //从第二个list中取出这个值,重新赋值 Info info2 = ls2[0]; //赋值为4 info2.c = 4; ls2[0] = info2; //打印查看效果 Console.WriteLine(ls[0].c); Console.WriteLine(ls2[0].c); Console.ReadKey(); } } }
实验结果:
结果证明:互不影响。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 存储大量数量(数组对象)
- 下一篇: php jquery实现即点即改