在c#中根据给定的顺序重新排列列表

本文关键字:新排列 排列 列表 顺序 | 更新日期: 2023-09-27 18:13:39

我有一个如下列表:

{CT, MA, VA, NY}

我将这个列表提交给一个函数,我得到了最佳的航路点顺序列表

{2,0,1,3}

现在我必须按照新提供的顺序重新排列列表。也就是说,在重新排列之后,列表应该看起来像:

{VA, CT, MA, NY}

做这件事的最佳方法是什么?使用linq有办法吗?

在c#中根据给定的顺序重新排列列表

您可以尝试以下操作:

var list = new List<string>{"CT", "MA", "VA", "NY"};
var order = new List<int>{2, 0, 1, 3};
var result = order.Select(i => list[i]).ToList();

这似乎是最简单的方法:

oldItems = LoadItems(); //{"CT","MA","VA","NY"};
List<string> newItems = List<string>();
foreach(int idx in returnedIndexes)
{
   newItems.Add(oldItems[idx]);
}