問題描述:
一個存放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(); } }}
實驗結果:
結果證明:互不影響。