作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个列表,其中包含重复的项目值(按 ID),但具有不同(或可能相同)的优先级。应从列表中删除具有相同或较低优先级的重复项。
例如:
var items = new {
new { Id=2, Priority=3 },
new { Id=4, Priority=4 },
new { Id=1, Priority=4 },
new { Id=2, Priority=5 },
new { Id=4, Priority=4 }
};
RemoveDuplicates(items);
// items should now contain distinct values,
// with highest possible priority
var items = new {
new { Id=1, Priority=4 }, // this one was unique
new { Id=2, Priority=5 }, // this one was duplicate with higher priority
new { Id=4, Priority=4 }, // this one was duplicate with same priority
};
是否可以使用 LINQ 执行此操作?我知道我可以按 ID 对列表进行排序,然后检查相邻的项目,但我只想检查这是否可行。
(更新:输入值不一定按 ID 分组)
最佳答案
var items = new[] {
new { Id=2, Priority=3 },
new { Id=2, Priority=5 },
new { Id=1, Priority=4 },
new { Id=4, Priority=4 },
new { Id=4, Priority=4 }
};
var deduped = items
.GroupBy(item => item.Id)
.Select(group => group.OrderByDescending(item => item.Priority).First())
.OrderBy(item => item.Id);
关于c# - 使用附加条件进行不同的 Linq 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6531869/
我有一个与此类似的循环。 int total1, total2; for (total1 = fsize(myfile);;) { total2 = fsize(myfile); ..
我已经开始了一个小项目来尝试学习一些新概念(希望是 C++ 或 Python),我只是希望在我的想法开始时得到一点帮助。 *这一切都与一个更大的梦幻篮球项目有关,但我必须从某个地方开始。 我想要 10
我有以下实体: @Entity public class User { @ManyToOne @JoinColumn(name = "group_code", referencedCo
我正在尝试使用 hibernate 条件向 Join 子句添加附加条件。事实上,有一些方法可以做到这一点: createCriteria(String associationPath, String
我是一名优秀的程序员,十分优秀!