【问题标题】:How to make Dictionary<double, double> from List<double> [closed]如何从 List<double> 制作 Dictionary<double, double> [关闭]
【发布时间】:2021-04-15 08:58:47
【问题描述】:

我正在学习 LINQ,我遇到了一个类似主题的问题。我不知道如何将 List 转换为 Dictionary,其中 Key 是 list 中的 double,而 Value 是这个数字的平方。我知道 .ToDictionary() 之类的方法,但不知道如何在我的情况下使用它。

输入:列表编号 = 新列表{2,3,4,5}

输出:2->4、3->9 等...

【问题讨论】:

  • 你会如何使用循环呢?如果您知道这一点,您可以轻松地将其转换为 linq-expression。
  • 说了这么多,你尝试了什么?

标签: c# .net linq


【解决方案1】:
var squared = numbers.ToDictionary(x => x, x => x * x);

但是,IMO 这是非常不必要的。执行乘法可能比字典查找便宜。

【讨论】:

  • 也许这是个愚蠢的例子,现实世界需要同时获取 keyFunc 和 valueFunc 的值
【解决方案2】:

在需要时进行乘法可能会更好。

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
                    
public class Program
{
    public static void Main()
    {
        var dataSet = new List<double>()
        {
            2,3,4,5
        };
        
        var result = dataSet.ToDictionary(k => k, v => v * v);
        foreach(var kv in result)
        {
            Console.WriteLine("{0} = {1}",kv.Key, kv.Value);
        }
    }
}

输出:

2 = 4
3 = 9
4 = 16
5 = 25

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 2014-03-17
    相关资源
    最近更新 更多