引言:當混子久了基礎也不會了哈哈,記性不好的我還是記錄下修改方式吧,不然想了一堆方法都沒達到目的
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; }
記下來就不怕忘了哈哈哈