【发布时间】:2019-12-15 04:35:28
【问题描述】:
给定以下对象:
public class Person
{
public string Name {get; set;}
public string Age {get; set;}
public list<string> Interests {get; set;}
}
有没有一种很好的单行 linq 方法来展平它(我对扩展方法持开放态度),这样如果我们有
var People = new List<Person>(){
new Person(){
Name = "Bill",
Age = 40,
Interests = new List<string>(){"Football", "Reading"}
},
new Person = new List<Person>(){
Name = "John",
Age = 32,
Interests = new List<string>(){ "Gameshows", "Reading"}
},
new Person = new List<Person>(){
Name = "Bill",
Age = 40,
Interests = new List<string>(){ "Golf"}
}
}
我们可以得到一个结果(即,如果其他属性匹配,则 AddRange 到 Interests 列表属性):
{
{
Name = "Bill",
Age = 40,
Interests = {"Football", "Reading", "Golf"}
},
{
Name = "John",
Age = 32,
Interests = { "Gameshows", "Reading"}
}
}
【问题讨论】:
-
你的意思是扁平化将每个兴趣放在单独的行上吗?
-
@jdweng 不抱歉,没有展平对象 - 只是确保没有多个相同的对象,因为列表属性在中具有附加值