C#中把list的值拷贝给另一个list注意事项+除法计算注意事项
1、list的拷贝问题
(1)直接 = 有坑!!!
List<double> value1 = new List<double> { 3, 22, 33, 44, 65 };
List<double> value0 = new List<double>();
value0 = value1;
这样写的话,value0其实是索引的value1,也就是说对value0进行修改操作的话,value1里的值也会被改动。
(2)直接加载
List<double> value1 = new List<double> { 3, 22, 33, 44, 65 };
List<double> value0 = new List<double>(value1);
可以避免上面的坑,这么写两个就是独立的list了。
PS
发现在list的()里可以写lambda表达式
List<double> value1 = new List<double> { 3, 22, 33, 44, 65 };
List<double> value0 = new List<double>();
for (int i = 0; i < 3; i++)
{
value0 = new List<double>(value1.GetRange(0,2));
value0[0] = 11;
}
value0[0] = 15;
(3)其他方法
还有其他几个方法,可以参考以下链接:
https://www.cnblogs.com/insus/p/8127745.html
2、除法计算注意
在C#中是默认用被除数的格式来确定计算结果的格式的;也就是说如果写double x=11 / 3;
计算结果x=3,自动向下取整了
如果想要得到小数结果,可以写成double x=11 / 3.0;