从另一个List中的List中的对象中选择一个属性

时间:2014-06-10 19:15:39

标签: c# select

我可以使用三元运算符执行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;。

1 个答案:

答案 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));

Here's more info on SelectMany()