Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

อัปเดตค่าใน Collection ด้วย LINQ ใน C#

List.ForEach()** (Extension Method) ใช้ Update ทุก Item ได้

Update ทุก Item

List fruits = new List
{
    new Fruit { Name = "Apple", Size = "Small" },
    new Fruit { Name = "Orange", Size = "Small" }
};

fruits.ForEach(f => f.Size = "Large"); // Update ทุกตัว

Update เฉพาะเงื่อนไข (Where)

IEnumerable fruits = new List
{
    new Fruit { Name = "Apple", Size = "Small" },
    new Fruit { Name = "Orange", Size = "Small" },
    new Fruit { Name = "Mango", Size = "Medium" }
};

foreach (var fruit in fruits.Where(f => f.Size == "Small"))
{
    fruit.Size = "Large";
}
// Apple, Orange → Large | Mango → Medium (ไม่เปลี่ยน)

ข้อสังเกต

  • List.ForEach ใช้ได้กับ List<T> เท่านั้น (ไม่ใช่ IEnumerable)
  • Where คืน IEnumerable ต้องใช้ foreach แทน ForEach
  • แก้ไข Object Reference โดยตรงได้ เพราะ Class เป็น Reference Type