c# - 如何根据条件从 C# 中的列表中选择重复值?
问题描述
我有一个日期和 Fileno 作为值的列表。我需要找到重复的日期并在此基础上找到最高的 Fileno。然后将该键值对和不同的对添加到最终列表中。结果应该如下所示。我可以得到重复的日期,但是如何比较重复的日期并找到最高的文件号?
Key Date Fileno
1 10/8/1980 1234
2 10/8/1980 1345
3 8/6/1970 4567
结果
2 10/8/1980 1345
3 8/6/1970 4567
代码
var list = new List<valuepair>();
list.Add(new valuepair {no=key,comdate=date,filnum=fileno})
Var dup= list.GroupBy(x => comdate.Value).Where(x => comdate.Count() > 1)
解决方案
您快到了,除了您发布的代码不可编译(!)。您只需要从每个组中获取具有最高“filnum”的元素:
var list = new List<valuepair>();
list.Add(new valuepair { no=1, comdate="10/8/1980", filnum=1234 });
list.Add(new valuepair { no=2, comdate="10/8/1980", filnum=1345 });
list.Add(new valuepair { no=3, comdate="8/6/1970", filnum=4567 });
var listWithoutDuplicates = list.GroupBy(x => x.comdate)
// For each group (in which items have identical dates) take only
// the one with the highest "filnum"
.Select(group => group.OrderBy(x => x.filnum).First())
.ToList();
推荐阅读
- corda - 可以在 deployNodes gradle 任务中使用 quasarExcludePackages 吗?
- ios - “Pod install”摆脱了所有运行构建阶段脚本
- azure - Terraform 删除由应用程序网关入口控制器 (AGIC) 创建的配置/资源
- asp.net-core - AutoMapper 10.0 失败并显示消息“实例属性 'Current' 没有为类型 'System.Collections.IDictionaryEnumerator' 定义”
- c# - 如何解决服务器上的 Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancelToken) 问题?
- python - 如何将字典拆分为多个字典的列表,在 Python 中全部为 N
- c# - 注销事件 MultiCastDelegate 性能问题
- python - 多次调用 Airflow Dag 失败回调
- html - 使用 html-inline-css-webpack-plugin 从样式表中内联所有具有适当样式的 html 标签
- apache-spark - 如何从pyspark中的时间戳中提取时间?