C#中把list的值拷贝给另一个list注意事项

本文详细解析了C#中List拷贝的常见误区及正确实践,包括直接赋值、构造函数拷贝等方法,并介绍了如何避免引用拷贝的问题。同时,文章还提醒开发者注意C#中的除法运算细节,特别是整数除法会自动向下取整的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值