c# - 如果有重复项,Linq 只删除一项

标签 c# linq sum

我有 5 个数字,即:1 1 1 2 3; 我必须对除最小值以外的它们求和,但我只能将其删除一次(如果最小值出现不止一次,我必须保留其余的)。我怎样才能用 Linq 做到这一点?我想:

var min = nums.Min();
var minSum = nums.Where(x => x != min).Sum();

但它会从列表中删除所有的 1。如果出现超过 1 次,我需要一种方法从那里出去。

如果可能,所有这些都使用 Linq。

最佳答案

这是一个单一的衬里,即使你的数组​​是空的也能工作

int[] nums = { 1, 1, 1, 2, 3 };
int minSum = nums.OrderBy(x =>x).Skip(1).Sum();

关于c# - 如果有重复项,Linq 只删除一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42273874/

相关文章:

c# - 使用 Controller 或 View 外部的元数据验证对象

c# - 无法使用DeleteAsync删除文件

c# - Linq - 从列表中取出 x 数量的不同项目

.net - Linq到SQL还是Linq到DataSet?

c# - 如何使用 Linq 根据另一个列表过滤列表?

javascript - 如何使用jquery对表的每一行和每一列的值进行求和

sql - PostgreSQL 需要生成 TOTAL ROW

c# - 在类级变量上使用 using 语句是不好的做法吗?

mysql - 使用 join、group by 和 Sum() 的 LINQ 查询

c# - C# 中的新运算符和虚拟运算符