【问题标题】:How would you divide all the negative values in a dictionary in C#?你将如何划分 C# 中字典中的所有负值?
【发布时间】:2022-11-24 23:40:23
【问题描述】:

我有一个Dictionary<string, double>。我遍历这些值以删除所有正双精度值。

我需要将剩余的负值除在一起,然后四舍五入到小数点后 10 位。

double divisionSum = 1;
foreach (var entry in dic.Values)
{
    divisionSum /= entry;
}

这不起作用,因为 1 除以负数不会返回第一个除法实例的初始值。

例如,如果 Dictionary 的值为 -2、-4、-8、-5,我希望 divisionSum 等于 0.0125。也不能使用任何 Math() 方法

【问题讨论】:

  • 所以澄清一下,你有一个字典,其值(例如)-1、-10、-3、-5。并且您想将它们全部分开以获得(在此示例中).0067? divisionSum 来自哪里?它在您的代码中,但在您的问题中未提及。
  • 你能通过添加一些示例输入数据和预期输出来澄清吗?

标签: c# dictionary key


【解决方案1】:

从索引 1 而不是默认值 0 开始循环遍历您的列表(好吧,它是一个字典,但您只关心值,所以它基本上是一个列表),但首先将索引 0 的值分配给您的结果。

var foo = new List<double>{-1, -10, -3, -5};

double result = foo[0];
for (int i = 1; i < foo.Count; i++)
{
    result /= foo[i];
}

result = Math.Round(result, 10);
result.Dump();

【讨论】:

    猜你喜欢
    • 2013-07-04
    • 2019-11-30
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2023-03-24
    • 2023-01-27
    • 1970-01-01
    • 2011-01-09
    相关资源
    最近更新 更多