【发布时间】:2021-04-15 08:58:47
【问题描述】:
我正在学习 LINQ,我遇到了一个类似主题的问题。我不知道如何将 List 转换为 Dictionary
输入:列表编号 = 新列表{2,3,4,5}
输出:2->4、3->9 等...
【问题讨论】:
-
你会如何使用循环呢?如果您知道这一点,您可以轻松地将其转换为 linq-expression。
-
说了这么多,你尝试了什么?
我正在学习 LINQ,我遇到了一个类似主题的问题。我不知道如何将 List 转换为 Dictionary
输入:列表编号 = 新列表{2,3,4,5}
输出:2->4、3->9 等...
【问题讨论】:
var squared = numbers.ToDictionary(x => x, x => x * x);
但是,IMO 这是非常不必要的。执行乘法可能比字典查找便宜。
【讨论】:
在需要时进行乘法可能会更好。
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
【讨论】: