下图可以知道List对象是引用关系,修改mmm,其实是修改uuu,而zzz其实也是引用uuu
所以当你把一个list集合赋值给变量的时候要注意了,赋值过去的是该list集合的引用
如果你只是想把list集合的数值部分赋值过去,请参照如下,使用AddRange
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using System;
using System.Net;
using System.IO;
public class Test : MonoBehaviour {
public List<lei01> jihe = new List<lei01>();
void Awake()
{
lei01 n01 = new lei01();
n01.name = "xuhaitao";
n01.age = 39;
jihe.Add(n01);
lei01 n02 = new lei01();
n02.name = "xuhaitao";
n02.age = 39;
jihe.Add(n02);
}
void Start () {
List<lei01> jjjj=new List<lei01>();
foreach(lei01 bbb in jihe)
{
jjjj.Add(bbb);
}
jihe.RemoveAt(0);
print(jihe.Count); //打印结果是1
print(jjjj.Count); //打印结果是2
}
}
public class lei01
{
public string name;
public int age;
}
注意下面写法,直接将一个list赋值给另一个list,是引用,不是拷贝
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using System;
using System.Net;
using System.IO;
public class Test : MonoBehaviour {
public List<lei01> jihe = new List<lei01>();
void Awake()
{
lei01 n01 = new lei01();
n01.name = "xuhaitao";
n01.age = 39;
jihe.Add(n01);
lei01 n02 = new lei01();
n02.name = "xuhaitao";
n02.age = 39;
jihe.Add(n02);
}
void Start () {
List<lei01> jjjj=new List<lei01>();
jjjj = jihe;
jihe.RemoveAt(0);
print(jihe.Count); //打印结果是1
print(jjjj.Count); //打印结果是1
}
}
public class lei01
{
public string name;
public int age;
}
其它相关文章:
FR:徐海涛(hunk Xu)