需要linq表达式从所有字典条目的值的Iternary.Name获取不同的Iternary.Name列表。
对象格式如下:
public class IternaryInfo
{
public string Name { get; set; }
public Iternary[] IternaryList { get; set; }
}
public class Iternary
{
public string Name { get; set; }
}
Dictionary<String, IternaryInfo> dictionary = new Dictionary<String, IternaryInfo>();
这可能是一个表达式还是必须循环。
尝试了 - dictionary.Select(x=>x.Value.IternaryList).ToList()
,但不确定如何从Iternary中选择-Name字段。
答案 0 :(得分:6)
你需要:
SelectMany
然后Select
将Iternary
投射到Name
,然后使用Distinct
仅获取不同的值
var result = dictionary.Values
.SelectMany(v => v.IternaryList)
.Select(i => i.Name)
.Distinct().ToList();