C# 如何修改列表中的匿名类型项?

C# 如何修改列表中的匿名类型项?,c#,linq,C#,Linq,ForEach不使用匿名类型。如中所述: 匿名类型提供了一种方便的方法,可以将一组只读属性封装到单个对象中,而无需先明确定义类型 所以您不能修改匿名类型的实例 至于在匿名类型上迭代集合,应该可以使用foreach轻松实现: var anonymous = list.Select(item => new List{name,age}).ToList(); anonymous.ForEach(item=> item.age=20); 请提供(新列表{name,age}不创建匿名对象的实

ForEach不使用匿名类型。如中所述:

匿名类型提供了一种方便的方法,可以将一组只读属性封装到单个对象中,而无需先明确定义类型

所以您不能修改匿名类型的实例

至于在匿名类型上迭代集合,应该可以使用
foreach
轻松实现:

var anonymous = list.Select(item => new List{name,age}).ToList();
anonymous.ForEach(item=> item.age=20);

请提供(
新列表{name,age}
不创建匿名对象的实例,它甚至不编译)并显示您已尝试的内容。不能修改匿名对象的属性。您的问题描述也已关闭。ForEach肯定可以使用匿名类型,问题不在于ForEach调用。与其声称它“不工作”,不如阅读并研究错误消息。
ForEach
是一种列表方法,而不是LINQ。LINQ是一种查询语言,它不修改数据。如果要修改值,请使用元组而不是匿名元组type@Jay这是至少两个问题的重复,可能还有更多的问题。如果您认为您的代码可以回答“如何修改匿名对象的属性”的问题,那么请发布(完整!)这些问题的答案。@Jay可能会尝试更准确地解释您自己。我不知道你所说的“每种类型链接类型”是什么意思,但是如果你认为你对一个流行问题有答案,那就去找一个问题并发布你的答案,或者发布一个自我回答的问题。
var list = Enumerable.Range(0, 2)
    .Select(i => new {age = i, name = ""})
    .ToList();

foreach (var item in list)
{
    Console.WriteLine(item.age);
}