اگر از struct استفاده کنی میتونی با واسطه مقادیر فیلد هر عنصر از لیست رو عوض کنی:
struct MyStruct
{
public int a;
}
private void button1_Click(object sender, EventArgs e)
{
List<MyStruct> lstStruct = new List<MyStruct>();
lstStruct.Add(new MyStruct() { a = 3 });
lstStruct.Add(new MyStruct() { a = 6 });
lstStruct.Add(new MyStruct() { a = 8 });
for (int i = 0; i < lstStruct.Count; i++)
{
MyStruct cs = lstStruct[i];
cs.a += 5;
lstStruct[i] = cs;
}
}
ولی اگر از کلاس استفاده کنی مستقیما:
class MyClass
{
public int a;
}
private void button1_Click(object sender, EventArgs e)
{
List<MyClass> lstMyClass = new List<MyClass>();
lstMyClass.Add(new MyClass() { a = 3 });
lstMyClass.Add(new MyClass() { a = 6 });
lstMyClass.Add(new MyClass() { a = 8 });
for (int i = 0; i < lstMyClass.Count; i++)
{
lstMyClass[i].a += 5;
}
}
برای حذف هم بله کافیه شئ مورد نظر را از طریق متد Remove و یا با داشتن اندیس با RemoveAt پاک کنی
مثال:
MyClass mc = lstMyClass.SingleOrDefault(i => i.a > 10);
if (mc != null)
{
lstMyClass.Remove(mc);
}