Mat*_*ttE 1 c# linq collections ienumerable
我有2个IEnumerable集合,其中包含一个字符和字符的计数(即s1 {Key ='a'Count ='5'}和s2 {Key ='a'Count ='4'})
我想用Linq查询执行以下操作:
如果该项目在两个集合中,我只希望来自集合的项目具有更高的计数,即来自s1的Count = 5
如果该项只在一个集合中,那么我们使用该项(不能使用Distinct,因为它说IEnumerable Anonymous不包含Distinct)
如果这些物品都在两个集合中,但它们的数量相等,那么我们使用哪一个并不重要.
无法想象这一部分,我很确定一旦我看到解决方案,我想要把我的头撞到墙上......
使用Linq扩展功能,您可以执行此操作.
Dictionary<char,int> dic1 = ...;
Dictionary<char,int> dic2 = ...;
var result = dic1.Concat(dic2)
.GroupBy(g=>g.Key)
.ToDictionary(x=>x.Key, x=>x.Max(m=>m.Value)) ;
Run Code Online (Sandbox Code Playgroud)
如果你有两个基础类型包含的集合key, count fields/properties,那么尝试使用它.
var result = list1.Concat(list2)
.GroupBy(g=>g.Key)
.Select(x=>new // Create an object instead if you have one.
{
x.Key,
x=>x.Max(m=>m.Count)
};
Run Code Online (Sandbox Code Playgroud)
检查一下 Demo
| 归档时间: |
|
| 查看次数: |
319 次 |
| 最近记录: |