gpt4 book ai didi

c# - 更改列表中列表中每个字符串项的值

转载 作者:太空宇宙 更新时间:2023-11-03 21:22:40 26 4
gpt4 key购买 nike

假设我有一个 Dad 类,其中包含 child 列表:

public class Dad
{
public List<Kid> kids = new List<Kid>();;
}

每个 child 都有一个玩具:

public class Kid
{
public List<string> Toys = new List<string>();
}

作为样本,我收集了一些爸爸:

Dad d1 = new Dad();
Kid k1 = new Kid();
k1.Toys.Add("toy1");
k1.Toys.Add("toy2");
d1.Kids.Add(k1);
List<Dad> dads = new List<Dad> { d1 };

我想了解如何执行 LINQ of List of Dads 以将每个 child 的玩具名称更改为大写。

类似于:

var dadsWithKidsWithChangeToysName = dads.Select(dad => dad.Kids.Select(kid => kid.Toys.ForEach(toy => toy.ToUpper())));

最佳答案

LINQ是用来查询的,不是用来修改的。 您不应该将其用于修改。而是使用简单的迭代 (foreach/for) 等。

您可以使用 LINQ 根据您现有的列表创建一个新的 List Dad,例如:

var modifiedDads = dads.Select(d => new Dad()
{
Kids = d.Kids.Select
(
k => new Kid()
{
Toys = k.Toys.Select(t => t != null ? t.ToUpper() : t).ToList()
}
).ToList()
}).ToList();

关于c# - 更改列表中列表中每个字符串项的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29707691/

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