首页 > 解决方案 > 将元素列表与另一个双打列表排序

问题描述

我正在使用 Revit API,我有两个列表,一个是 Elements,另一个是 Doubles,这些 doubles 是从这些元素位于 Z 轴上的 pointXYZ 提取的。我需要使用双列表对元素列表进行排序,并且需要使用其他列表,如曲线、点。

我尝试了 OrderBy,但无法理解如何将另一个列表作为第一个列表的关键。

举个例子:

List<Elements> listElements = {ele1, ele2, ele3, ele4}
List<double> listDouble = {4.25, 3.2, 5.2, 2.0}

我需要一个像这样的输出:

List<Elements> newListElements = {ele4, ele2, ele1, ele3}

标签: c#

解决方案


你可以这样使用字典

Dictionary<Elements, double> dic = new Dictionary<Elements, double>();
for (int i = 0; i < listDouble.Count; i++)
{
dic.Add(listElements[i],listDouble[i]);
}
var newListElements=dic.OrderBy(x => x.Value).Select(x=>x.Key).ToList();    

推荐阅读