gpt4 book ai didi

c# - C# 中基于另一个浮点列表的排序列表

转载 作者:行者123 更新时间:2023-12-01 18:58:54 25 4
gpt4 key购买 nike

给出以下 C# 中的两个列表:

List<string> X = new List<string>({    "a",    "b",    "c",    "d",    "e",    "f",    "g", "h",  "i"});
List<float> Y = new List<float> ({ 0.991f, 1.471f, 3.819f, 0.003f, 2.291f, 2.887f, 2.887f, 0, 1.0f});

使用 Y 中的浮点值对 X 进行排序以获得以下输出的最干净/最短的方法是什么?

"h", "d", "a", "i", "b", "e", "f", "g", "c"

具有相同 float “key”的元素的顺序并不重要。

最佳答案

如果每个字符串键都是唯一的并且每个列表都完全匹配,则可以使用 System.Reactive 中的 zip 将它们用作字典中的键。

var dic = X.Zip(Y, (k, v) => new { k, v })
.ToDictionary(x => x.k, x => x.v);

现在,按值对新形成的字典进行排序。

var sortedDict = from entry in dic orderby entry.Value ascending select entry;

在使用查询语法的“一行”中,这将变为:

var dic = X.Zip(Y, (k, v) => new { k, v })
.ToDictionary(x => x.k, x => x.v);
.OrderBy(x => x.Value);

关于c# - C# 中基于另一个浮点列表的排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28058715/

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