C#修改列表指定项或指定元素的值

您所在的位置:网站首页 修改列表元素值 C#修改列表指定项或指定元素的值

C#修改列表指定项或指定元素的值

2023-05-31 09:22| 来源: 网络整理| 查看: 265

引言:当混子久了基础也不会了哈哈,记性不好的我还是记录下修改方式吧,不然想了一堆方法都没达到目的

 

1、首先是修改符合条件的第一个元素的值(方式1为修改所有符合条件的元素)

/// /// 示例:修改列表符合条件第一个元素的值 /// /// 返回示例结果 public string ModifyClass() { string message1 = "修改前:(默认方式2不显示修改前)"; List ExamleList = new List() { "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; } View Code

 

2、接着是修改列表符合条件第一个单项的属性

/// /// 示例类 /// 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; } } } /// /// 示例:修改列表符合条件第一个单项的属性 /// /// 返回示例结果 public string ModifyClass1() { string message1 = "修改前:"; List EC = new List() { 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; } View Code

 

3、再来是修改列表符合条件一个片段的属性

/// /// 示例类 /// 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; } } } /// /// 示例:修改列表符合条件一个片段的属性 /// /// 返回示例结果 public string ModifyClass2() { string message1 = "修改前:"; List EC = new List() { 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 modifyEC = new List() { 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; } View Code

 

记下来就不怕忘了哈哈哈



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3