需要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>();
Run Code Online (Sandbox Code Playgroud)
这是否可能在一个表达式中,或者必须与循环一起使用.
尝试 - dictionary.Select(x=>x.Value.IternaryList).ToList()但不确定,如何从Iternary中选择-Name字段.
你需要:
SelectMany然后将列表展平Iternarys 投射到他们Name的使用Select然后使用Distinct只得到不同的值
var result = dictionary.Values
.SelectMany(v => v.IternaryList)
.Select(i => i.Name)
.Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)