引言:当混子久了基础也不会了哈哈,记性不好的我还是记录下修改方式吧,不然想了一堆方法都没达到目的
1、首先是修改符合条件的第一个元素的值(方式1为修改所有符合条件的元素)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
///
/// 示例:修改列表符合条件第一个元素的值
///
/// 返回示例结果
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、接着是修改列表符合条件第一个单项的属性
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
///
/// 示例类
///
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、再来是修改列表符合条件一个片段的属性
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
///
/// 示例类
///
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
记下来就不怕忘了哈哈哈
|