C#修改列表指定项或指定元素的值
引言:当混子久了基础也不会了哈哈,记性不好的我还是记录下修改方式吧,不然想了一堆方法都没达到目的
1、首先是修改符合条件的第一个元素的值(方式1为修改所有符合条件的元素)

/// <summary> /// 示例:修改列表符合条件第一个元素的值 /// </summary> /// <returns>返回示例结果</returns> public string ModifyClass() { string message1 = "修改前:(默认方式2不显示修改前)"; List<string> ExamleList = new List<string>() { "1", "2", "3" }; #region 方式1 //ExamleList.ForEach(t => //{ // message1 += "\r\n" + t; // if (t == "2") t = "222"; //}); #endregion #region 方式2 int indexEX = ExamleList.IndexOf("2"); ExamleList.RemoveRange(indexEX, 1);//ExamleList.Remove("2"); ExamleList.Insert(indexEX, "222"); #endregion message1 += "\r\n\r\n修改后:"; ExamleList.ForEach(t => { message1 += "\r\n" + t; }); return message1; }
2、接着是修改列表符合条件第一个单项的属性

/// <summary> /// 示例类 /// </summary> public class ExamplesClass { private int id; private string value1; public int ID { get { return id; } set { id = value; } } public string Value { get { return value1; } set { value1 = value; } } } /// <summary> /// 示例:修改列表符合条件第一个单项的属性 /// </summary> /// <returns>返回示例结果</returns> public string ModifyClass1() { string message1 = "修改前:"; List<ExamplesClass> EC = new List<ExamplesClass>() { new ExamplesClass(){ ID = 1, Value = "1"}, new ExamplesClass(){ ID = 2, Value = "2"}, new ExamplesClass(){ ID = 3, Value = "3"}, }; foreach (ExamplesClass ec in EC) //遍历修改前的列表 { message1 += "\r\n" + ec.Value; } #region 更简单的修改方式 //EC.ForEach(t => //{ // if (t.ID == 2) // t.Value = "222"; //}); #endregion #region 酱紫很麻烦 var modifyEC = EC.Where(t => t.ID == 2).ToList(); //获取符合修改条件的项 if (modifyEC.Count() != 0) //获取到修改项不为空 { //modifyEC.FirstOrDefault().Value = "22"; modifyEC[0].Value = "22"; } else Thread.Sleep(1); #endregion message1 += "\r\n\r\n修改后:"; EC.ForEach(t => //遍历修改后的列表 { message1 += "\r\n" + t.Value; }); return message1; }
3、再来是修改列表符合条件一个片段的属性

/// <summary> /// 示例类 /// </summary> public class ExamplesClass { private int id; private string value1; public int ID { get { return id; } set { id = value; } } public string Value { get { return value1; } set { value1 = value; } } } /// <summary> /// 示例:修改列表符合条件一个片段的属性 /// </summary> /// <returns>返回示例结果</returns> public string ModifyClass2() { string message1 = "修改前:"; List<ExamplesClass> EC = new List<ExamplesClass>() { new ExamplesClass(){ ID = 1, Value = "1"}, new ExamplesClass(){ ID = 2, Value = "2"}, new ExamplesClass(){ ID = 3, Value = "3"}, new ExamplesClass(){ ID = 4, Value = "4"}, new ExamplesClass(){ ID = 5, Value = "5"} }; List<ExamplesClass> modifyEC = new List<ExamplesClass>() { new ExamplesClass(){ ID = 3, Value = "333"}, new ExamplesClass(){ ID = 4, Value = "444"} }; foreach (ExamplesClass ec in EC) //遍历修改前的列表 { message1 += "\r\n" + ec.Value; } int modifyIndex = EC.IndexOf(EC.Where(t => t.ID == 3).ToList()[0]); //从ID为3的位置开始修改2个项 EC.RemoveRange(modifyIndex, 2); //移除从指定开始的2个项 EC.InsertRange(modifyIndex, modifyEC); //从指定位置插入新的列表 message1 += "\r\n\r\n修改后:"; EC.ForEach(t => //遍历修改后的列表 { message1 += "\r\n" + t.Value; }); return message1; }
记下来就不怕忘了哈哈哈
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!