I have 2 list of Result
with having list of Value
and there are some duplicates Name/Class if we merge both Result list.
How to merge List<Value>
and remove duplicates for Name/class pair for all keys?
var result1 = new List<Result>
{
new Result{Key = "X", Values = new List<Value>{new Value{Name = "A1", Class = "C1"}}},
new Result{Key = "Y", Values = new List<Value>{new Value{Name = "B1", Class = "D1"}}}
};
var result2 = new List<Result>
{
new Result{Key = "X", Values = new List<Value>{new Value{Name = "A1", Class = "C1"}, new Value{Name = "A2", Class = "C1"}}},
new Result{Key = "Y", Values = new List<Value>{new Value{Name = "B2", Class = "D2"}}}
};
Here I tried,
var lstResult = new List<Result>();
var groups = result1.Concat(result2).GroupBy(a => a.Key);
foreach (var group in groups)
{
lstResult.Add(new Result
{
Key = group.Key,
Values = group.Select(x => x.Values).ToList()
});
}
public class Result
{
public string Key { get; set; }
public List<Value> Values { get; set; }
}
public class Value
{
public string Name { get; set; }
public string Class { get; set; }
}
In above code I am getting error at line,
Values = group.Select(x => x.Values).ToList() //error
cannot implicitly convert type 'System.Collections.Generic.List<System.Collections.Generic.List<net452.Program.Value>>' to 'System.Collections.Generic.List<net452.Program.Value>'
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…