我有一些列表(其中T是自定義類,而類有一些屬性)。 我想知道如何使用Lambda表達式來改變一個或多個值inide的,所以結果會是一樣的foreach循環波紋管:更改列表中的某些值<T>
注:列表裏面包含多個項目(多行)
foreach (MyClass mc in list)
{
if (mc.Name == "height")
mc.Value = 30;
}
這在LINQ查詢(使用Lambda表達式),但它的不一樣上foreach循環,它只是從列表返回1項(一行)!
我要的是,它返回的所有項目(所有行),只有chnages合適的一個(在WHERE extention方法中指定的項目
list = list.Where(w => w.Name == "height").Select(s => { s.Value = 30; return s; }).ToList();
注:這2例是不一樣的!我再說一遍,linq只返回1個項目(一行),這是我不想要的東西,我需要從列表中的所有項目(如foreach循環,它只做變化,但它不刪除任何物品)
*爲什麼*你想使用lambda表達式? 'foreach'的代碼工作正常,很簡單。 LINQ用於*查詢*數據,而不是對它進行變異。 –
根據定義,只返回匹配記錄。基本上:這不是你想要的 - 只是使用foreach –
嗨,喬恩,我知道foreach循環如果擊球和更快,但我不想學習,這就是全部。對於一些「小」代碼將會很好。但重點主要在於學習。 –