如何设置列表对象的多个值,我正在做以下但是失败。
objFreecusatomization
.AllCustomizationButtonList
.Where(p => p.CategoryID == btnObj.CategoryID && p.IsSelected == true && p.ID == btnObj.ID)
.ToList()
.ForEach(x => x.BtnColor = Color.Red.ToString(), );
在逗号之后我想设置另一个值。 应该是什么表达,尽管我只有一个记录相关。
答案 0 :(得分:14)
个人而言,我不会以的方式编写代码 - 但你可以使用statement lambda:
语句lambda类似于表达式lambda,除了语句用括号括起来
语句lambda的主体可以包含任意数量的语句;但实际上,通常不会超过两三个。
所以ForEach
调用看起来像这样:
.ForEach(x => {
x.BtnColor = Color.Red.ToString();
x.OtherColor = Color.Blue.ToString();
});
我会写一个foreach
循环代替:
var itemsToChange = objFreecusatomization.AllCustomizationButtonList
.Where(p => p.CategoryID == btnObj.CategoryID
&& p.IsSelected
&& p.ID == btnObj.ID);
foreach (var item in itemsToChange)
{
item.BtnColor = Color.Red.ToString();
item.OtherColor = Color.Blue.ToString();
}
(您可以将查询内联到foreach
语句本身,但我个人发现上述方法使用单独的局部变量更清晰。)