我可以使用三元运算符执行select来从列表中的对象获取属性吗?
这是我的模特:
public class Xpto
{
public List<Son> Sons { get; set; }
}
public class Son
{
public string Names { get; set; }
}
在这里,我想得到&#34;姓名&#34;我拥有的每个儿子的属性:
var result = (from a in mylist
select new
{
sonsNames = a.Sons == null : <What should i put here?>
}).ToList<object>();
我已经尝试了Sons.ToString()
,但它打印了一个对象引用。
我想在&#34; sonsNames&#34;中添加一个字符串列表。并且每个名字由&#39;,&#39;分隔。示例:sonsName:&#39; george,john&#39;。
答案 0 :(得分:1)
这是怎么回事?
//set up a collection
var xptos = new List<Xpto>()
{ new Xpto()
{ Sons = new List<Son>
{ new Son() { Names = "test1" },
new Son() { Names = "test2" }
}
},
new Xpto()
{
Sons = new List<Son> {
new Son() { Names = "test3" }
}
}};
//select the names
var names = xptos.SelectMany(r => r.Sons).Where(k => k.Names != null)
.Select(r => r.Names + ",") .ToList();
names.ForEach(n => Console.WriteLine(n));