簡體   English   中英

根據c#中的給定順序重新排列列表

[英]Rearrange a list based on given order in c#

我有一個列表如下:

{CT, MA, VA, NY}

我將此列表提交給一個函數,我得到了最佳的航點訂單列表

{2,0,1,3}

現在我必須按照新提供的順序重新排列列表。 即重新排列后,列表應如下所示:

{VA, CT, MA, NY}

這樣做的最佳方式是什么? 使用linq有辦法嗎?

您可以嘗試以下方法:

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]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM