当前位置: 首页 > news >正文

List附加对象

List里面的某个对象需要修改,赋值
可以使用ALL或者ForEach,All的话,不能直接使用赋值对象只能赋值对象的某个字段

        static void Main(string[] args)
        {

            List<UserData> UserDatas = new List<UserData>
            {
                new UserData { Id = 1, Name = "小明" },
                new UserData { Id = 2, Name = "小红" },
                new UserData { Id = 3, Name = "小智" }
            };

            var userTemp = UserDatas.FirstOrDefault(p => p.Id == 1);
            userTemp = new UserData { Id = 4, Name = "测试" };
            Console.WriteLine("----------------------------");
            Console.WriteLine("查询出来替换后");
            foreach (var item in UserDatas)
            {
                Console.WriteLine(item.Name);
            }
            Console.WriteLine("替换失败");
            // userTemp 只是一个局部变量你修改它是修改不到list的
            Console.WriteLine("----------------------------");
            Console.WriteLine("使用for循环");
            for (int i = 0; i < UserDatas.Count; i++)
            {
                if (UserDatas[i].Id == 1)
                {
                    UserDatas[i] = new UserData { Id = 4, Name = "for循环测试" };
                }
            }

            foreach (var item in UserDatas)
            {
                Console.WriteLine(item.Name);
            }
            Console.WriteLine("----------------------------");
            Console.WriteLine("使用all循环 附加对象");
            var userTemp1 = new UserData { Id = 3, Name = "all循环附加对象" };
            UserDatas.Where(p => p.Id == 3).All(l => { l = userTemp1; return true; }); // 直接赋值对象是修改不了


            foreach (var item in UserDatas)
            {
                Console.WriteLine(item.Id);
                Console.WriteLine(item.Name);
            }
            Console.WriteLine("----------------------------");
            Console.WriteLine("使用all循环 赋值");
    
            UserDatas.Where(p => p.Id == 3).All(l => { l.Id = 3; l.Name = "all循环赋值"; return true; });
            foreach (var item in UserDatas)
            {
                Console.WriteLine(item.Id);
                Console.WriteLine(item.Name);
            }
            Console.WriteLine("----------------------------");
            Console.WriteLine("使用ForEach循环");
            UserDatas.ForEach(p =>
            {
                if (p.Id == 3)
                {
                    p.Name = "ForEach循环赋值";
                }
            });

            foreach (var item in UserDatas)
            {
                Console.WriteLine(item.Name);
            }


            Console.ReadLine();
        }

        public class UserData
        {
            public int Id { get; set; }

            public string Name { get; set; }
        }
    }

结果:

----------------------------
查询出来替换后
小明
小红
小智
替换失败
----------------------------
使用for循环
for循环测试
小红
小智
----------------------------
使用all循环 附加对象
4
for循环测试
2
小红
3
小智
----------------------------
使用all循环 赋值
4
for循环测试
2
小红
3
all循环赋值
----------------------------
使用ForEach循环
for循环测试
小红
ForEach循环赋值

相关文章:

  • Flutter中Align的使用说明
  • 洛科威多功能岩棉板为环保助力,推动企业绿色可持续发展
  • Linux文件
  • 【监督学习】岭回归算法步骤及matlab实现
  • 网络编程---多客户端服务器
  • LCS算法(文本相似度计算)
  • springmvc 框架学习
  • 国思RDIF低代码快速开发框架 v6.2版本发布
  • 【Qt】Qt + Modbus 服务端学习笔记
  • 论数据结构
  • 基于单片机控制的电动汽车双闭环调速系统(论文+源码)
  • PowerShell 美化 增强教程
  • go语言中空结构体
  • [代码规范]1_良好的命名规范能减轻工作负担
  • golang+redis 实现分布式限流
  • 蓝桥杯 握手问题
  • 【C#高阶编程】—单例模式详解
  • MySQL性能优化,sql优化有哪些,数据库如何优化设计(二)
  • 【软件工程】08_结构化设计方法
  • Bash 脚本基础
  • 软硬件企业集中发布未成年人模式使用手册
  • 事关广大农民利益,农村集体经济组织法5月1日起施行
  • 78家公募年度业绩比拼:23家营收净利双升,十强座次微调
  • 专访|200余起诉讼,特朗普上台100天,美国已进入宪政危机
  • 万科:一季度营收近380亿元,销售回款率超100%
  • 中国人寿一季度净利润288亿增39.5%,营收降8.9%