1、改变list中某个元素的值
public class tb_SensorRecordModel
{
public int ID { get; set; }
public decimal Value1 { get; set; }
}
List<tb_SensorRecordModel> list = new List<tb_SensorRecordModel>();
list.Add(new tb_SensorRecordModel { ID = 1, Value1 = 1 });
list.Add(new tb_SensorRecordModel { ID = 2, Value1 = 2 });
list.Add(new tb_SensorRecordModel { ID = 3, Value1 = 3 });
//改变list中某个元素值
var model = list.Where(c => c.ID == 2).FirstOrDefault();
model.Value1 = 2222;
list.ForEach(c =>
{
//打印的数据表明 list中的那个元素 确实被改变了
//知识:引用、地址
Console.WriteLine($"{c.ID},{c.Value1}");
});
Console.Read();
return;
2、替换某一段数据
List<tb_SensorRecordModel> list1 = new List<tb_SensorRecordModel>();
list1.Add(new tb_SensorRecordModel { ID = 1, Value1 = 1 });
list1.Add(new tb_SensorRecordModel { ID = 2, Value1 = 2 });
list1.Add(new tb_SensorRecordModel { ID = 3, Value1 = 3 });
list1.Add(new tb_SensorRecordModel { ID = 4, Value1 = 4 });
list1.Add(new tb_SensorRecordModel { ID = 5, Value1 = 5 });
//构造新的一段数据
List<tb_SensorRecordModel> list2 = new List<tb_SensorRecordModel>();
list2.Add(new tb_SensorRecordModel { ID = 2, Value1 = 2222 });
list2.Add(new tb_SensorRecordModel { ID = 3, Value1 = 3333 });
//删除 旧的 那段数据
list1.RemoveRange(1, 2);
//将新的 这段数据 插入到 指定位置
list1.InsertRange(1, list2);
list1.ForEach(c =>
{
Console.WriteLine($"{c.ID},{c.Value1}");
});
Console.Read();
return;
3. C# List 中 Find 方法
实例化一个集合
List userCollection = new List();
userCollection.Add(new User(1, “testOne”));
userCollection.Add(new User(2, “testTwo”));
userCollection.Add(new User(3, “testThree”));
方法一
User resultUser = userCollection.Find(
delegate(User user)
{
return user.UserID == 1 && user.UserName.Equals(“testOne”);
});
方法二
User resultUser = userCollection.Find((User user) =>user.UserID == 1 && user.UserName.Equals(“testOne”));
4.删除某个元素
List testList = new List<ConsoleApplication1.TestModel>();
testList.Add(new ConsoleApplication1.TestModel()
{
Index=1,
Name=“Index1”
});
testList.Add(new ConsoleApplication1.TestModel()
{
Index = 2,
Name = “Index2”
});
var whereRemove = testList.FirstOrDefault(t => t.Index == 1);
testList.Remove(whereRemove);
上述语句执行成功后,testList只有一个元素,只有Index=2的那个元素对象。如果上述Remove方法采取下列写法,将不会进行移除,因为虽然对象中所有属性值都一样,但元素的引用地址不同,不在List集合内。
var whereRemove = new TestModel() { Index = 1, Name = “Index1” };
testList.Remove(whereRemove);