gpt4 book ai didi

C# Linq 结果 ToDictionary 帮助

转载 作者:太空狗 更新时间:2023-10-29 22:13:13 28 4
gpt4 key购买 nike

我有一个从字典中获取结果的 lambda 表达式。

var sortedDict = (from entry in dctMetrics 
orderby entry.Value descending
select entry);

表达式拉回了我需要的对,我可以在 IDE 的 Debug模式下看到它们。

如何将其转换回与源相同类型的字典?我知道 sortedDict 的 TElement 是一个 KeyValuePair,但我无法完全理解 ToDictionary 扩展方法的语法。我还尝试对 var 结果进行 foreach 以分段构建新字典,但无济于事。

是否有类似的东西(功能方面):

var results = (from entry in dictionary 
orderby entry.Value descending
select entry);
Dictionary<string,float> newDictionary = results as (Dictionary<string,float>);

最佳答案

你可以这样做:

var newDictionary = results.ToDictionary(r => r.Key, r => r.Value);

读作“对于结果中的每一对,将该元素添加到新字典中,其中键将作为该对的键生成,而该值将作为该对的值生成。”

此外,仅基于您的示例代码——您应该记住 Dictionary<T, U>被实现为哈希表,因此它不会维护您放入其中的元素的顺序。考虑使用 SortedDictionarySortedList相反,如果你需要一个有序的 map 。

关于C# Linq 结果 ToDictionary 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1970684/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com