如何更改属性linq之一



我想使用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();

最新更新