我想使用linq更改列表中的一个属性,但这无效,请勿创建一个新变量(这是一个简单的示例,实际列表有很多属性)
List<string> aaa = new List<string>()
{
"a", "b"
};
aaa.Where(o => o == "b").Select(o => {
o = "c";
return o;
} ).ToList();
linq是a query 语言,您可以'问'事物,但是很难使用linq进行 modify 。你不应该那样做。
在枚举器中更改对象状态通常是一件坏事,因此请考虑使用foreach
循环。
如果要更改输出而不是实际元素,则可以执行此操作:
var list = aaa.Select(o => o == "b" ? "c" : o).ToList();
尝试:
List<string> aaa = new List<string>()
{
"a", "b"
};
aaa = aaa.Select(o => {
return o == "b" ? "c" : o
}).ToList();