C# 结构体成员 list

我定义一个结构体,里面包含List类型,而结构体调用时也要成为一个List。然而我修改结构体成员里面的List时,另一个变了。如下,程序运行到cc.sItemName="... 我定义一个结构体,里面包含List类型,而结构体调用时也要成为一个List。然而我修改结构体成员里面的List时,另一个变了。如下,程序运行到cc.sItemName = "cc";都没问题(sItemName是string),但是运行下一步cc.dParameter[1] = 4000;后(dParameter是List),连前面的bb的dParameter的值也一起变了,求原因及解决方法。
//定义结构体
public struct struct_TestItem
{
public string sItemName { get; set; }
public List<string> sParameter;
public List<double> dParameter { get; set; }
public sbyte bResult { get; set; }
}
//调用
private void Test()
{
List<struct_TestItem> lst_Strust_TestItem = new List<struct_TestItem>();

struct_TestItem aa = new struct_TestItem();
struct_TestItem bb = new struct_TestItem();

List<string> sa1 = new List<string>();
List <double> sd1 =new List <double>();

sa1.Add("1");
sa1.Add("2");
sd1.Add(3);
sd1.Add(4);

aa.sItemName = "aa";
aa.sParameter = sa1;
aa.dParameter = sd1;
lst_Strust_TestItem.Add(aa);

bb.sItemName = "bb";
bb.sParameter = sa2;
bb.dParameter = sd2;
lst_Strust_TestItem.Add(bb);

struct_TestItem cc = new struct_TestItem();
cc = bb;
cc.sItemName = "cc";
cc.dParameter[1] = 4000;

lst_Strust_TestItem.Add(cc);

}
别跟我说类,试过了,一个样,实例化了也一样。
展开
 我来答
匿名用户
2017-08-19
展开全部
因为 cc=bb这一句,cc 和 bb 虽然都是结构体,但这个结构体里面有 List,List并没有重新实例化,所以 cc 和 bb 里面的 List 其实是同一个。
追问
如何解决?
追答
在构造 struct_TestItem 的时候实例化里面的两个 List。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式