Linq to 对象 C# 嵌套类
本文关键字:嵌套 对象 to Linq | 更新日期: 2023-09-27 18:36:47
public class parent
{
public string abc { get; set; }
public childclass pos { get; set; }
}
public class childclass
{
public string value { get; set; }
}
我目前正在阅读父类的集合
var obj =
(from dia in parent
select new
{
abc = dia.abc,
pos = new childclass()
{
value = dia.pos.value
},
})
.ToList();
如何使用linq读取嵌套类子类 反对,这块不起作用
pos = new childclass()
{
Value = dia.pos.Value
},
请告知
它工作得很好,我认为你的问题是区分大小写的
类:
public class Parent
{
public string Abc { get; set; }
public Childclass Pos { get; set; }
}
public class Childclass
{
public string Value { get; set; }
}
用:
var parent = new List<Parent> {
new Parent { Abc = "abc1", Pos = new Childclass { Value = "Value1" } },
new Parent { Abc = "abc2", Pos = new Childclass { Value = "Value2" } }
};
var obj =(from dia in parent select new {
abc = dia.Abc,
pos = new Childclass()
{
Value = dia.Pos.Value
},
}).ToList();
C# 区分大小写。 类childClass
中的value
字段具有小写的"v"。 您的 LINQ 语句使用大写的"V"引用它。
请尝试以下代码:
var obj = (from dia in parent
select new
{
abc = dia.abc,
pos = new childclass()
{
value = dia.pos.value // 'Value' has been changed to 'value'
},
}).ToList();
下面是我为验证更新的 LINQ 语句是否正常工作而运行的测试:
var parents = new List<parent>()
{
new parent{abc = "abc", pos = new childclass{ value = "value" }}
};
var obj =
(from dia in parents // changed to 'parents' to match my variable above
select new
{
abc = dia.abc,
pos = new childclass()
{
value = dia.pos.value
},
}).ToList();
foreach (var par in obj)
{
Console.WriteLine(par);
}
结果输出为:
"{ abc = abc, pos = ProgrammingTestBed.Program+childclass }"