我想将一个洗碗机名称列表写入CSV。
用户有房屋清单,房子有洗碗机清单
CSV部分已完成,但我对LINQ不太熟悉。
我如何获得洗碗机的名称?我不能添加" .name"到下面的LINQ。
string Join(",",User.Houses.SelectMany(h => h.Dishwashers))
答案 0 :(得分:0)
您需要投射洗碗机名称。
string.Join(string separator, params string[] value)
需要一系列名称。
string Join(",", User.Houses.SelectMany(h => h.Dishwashers).Select(dw => dw.Name).ToArray())
我期待这样的事情:
using System;
using System.Linq;
class House
{
public Dishwasher[] Dishwashers{get;set;}
}
class Dishwasher
{
public string Name {get;set;}
}
public class Program
{
public static void Main()
{
var houses = new [] {
new House(){ Dishwashers = new [] { new Dishwasher(){ Name="DW1"}, new Dishwasher(){ Name="DW12"} }},
new House(){ Dishwashers = new [] { new Dishwasher(){ Name="DW2"}, new Dishwasher(){ Name="DW22"} }}
};
var allDishwashers = houses.SelectMany(h=> h.Dishwashers);
Console.WriteLine(string.Join(",", allDishwashers.Select(dw=> dw.Name).ToArray()));
}
}
这里有一个有效的.NETFiddle:https://dotnetfiddle.net/fat1fM