gpt4 book ai didi

c# - 更改 List 中的一些值

转载 作者:IT王子 更新时间:2023-10-29 03:51:34 26 4
gpt4 key购买 nike

我有一些列表(其中 T 是自定义类,类具有一些属性)。我想知道如何使用 Lambda 表达式更改其中的一个或多个值,因此结果将与下面的 foreach 循环相同:

注意:列表中包含多个项目(多行)

        foreach (MyClass mc in list)  
{
if (mc.Name == "height")
mc.Value = 30;
}

这是 linq 查询(使用 Lambda 表达式),但它与上面的 foreach 循环不同,它只返回列表中的 1 项(一行)!

我想要的是,它返回所有项目(所有行)并且只更改适当的项目(在 WHERE 扩展方法中指定的项目)。

list = list.Where(w => w.Name == "height").Select(s => { s.Value = 30; return s; }).ToList();

注意:这两个例子不一样!我再说一遍,linq 只返回 1 个项目(一行),这是我不想要的,我也需要列表中的所有项目(就像 foreach 循环,它只做更改,但不删除任何项目).

最佳答案

你可以使用 ForEach , 但你必须转换 IEnumerable<T>List<T>首先。

list.Where(w => w.Name == "height").ToList().ForEach(s => s.Value = 30);

关于c# - 更改 List<T> 中的一些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12986776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com