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

C# 更改列表中列表中每个字符串项的值,c#,.net,linq,C#,.net,Linq,假设我有一个班上的爸爸,他有一张孩子名单: public class Dad { public List<Kid> kids = new List<Kid>();; } LINQ用于查询,而不是用于修改。你不应该用它来修改。而是使用一个简单的foreach/for等迭代 您可以使用LINQ根据现有列表创建新的Dad列表,如: var modifiedDads = dads.Select(d => new Dad() { Kids = d.Kids.

假设我有一个班上的爸爸,他有一张孩子名单:

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

LINQ用于查询,而不是用于修改。你不应该用它来修改。而是使用一个简单的foreach/for等迭代

您可以使用LINQ根据现有列表创建新的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();

LINQ用于查询,而不是用于修改。你不应该用它来修改。而是使用一个简单的foreach/for等迭代

您可以使用LINQ根据现有列表创建新的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();

如果您的类有一个接受IEnumerable的构造函数,您可以这样得到它:

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

        public Dad(IEnumerable<Kid> kids)
        {
            this.kids = kids.ToList();
        }
    }
    public class Kid
    {
        public List<string> Toys = new List<string>();

        public Kid(IEnumerable<string> toys)
        {
            Toys = toys.ToList();
        }
    }

    var dads = new List<Dad> {
        new Dad(new [] { new Kid(new [] { "a", "b" }) }),
        new Dad(new [] { new Kid(new [] { "c", "d" }) }),
    };

    var dadsWithKidsWithChangeToysName = dads.Select(d => new Dad(d.kids.Select(k => new Kid(k.Toys.Select(t => t.ToUpper())))));

如果您的类有一个接受IEnumerable的构造函数,您可以这样得到它:

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

        public Dad(IEnumerable<Kid> kids)
        {
            this.kids = kids.ToList();
        }
    }
    public class Kid
    {
        public List<string> Toys = new List<string>();

        public Kid(IEnumerable<string> toys)
        {
            Toys = toys.ToList();
        }
    }

    var dads = new List<Dad> {
        new Dad(new [] { new Kid(new [] { "a", "b" }) }),
        new Dad(new [] { new Kid(new [] { "c", "d" }) }),
    };

    var dadsWithKidsWithChangeToysName = dads.Select(d => new Dad(d.kids.Select(k => new Kid(k.Toys.Select(t => t.ToUpper())))));
    public class Dad
    {
        public List<Kid> kids = new List<Kid>();

        public Dad(IEnumerable<Kid> kids)
        {
            this.kids = kids.ToList();
        }
    }
    public class Kid
    {
        public List<string> Toys = new List<string>();

        public Kid(IEnumerable<string> toys)
        {
            Toys = toys.ToList();
        }
    }

    var dads = new List<Dad> {
        new Dad(new [] { new Kid(new [] { "a", "b" }) }),
        new Dad(new [] { new Kid(new [] { "c", "d" }) }),
    };

    var dadsWithKidsWithChangeToysName = dads.Select(d => new Dad(d.kids.Select(k => new Kid(k.Toys.Select(t => t.ToUpper())))));