13

次のようなリストがあります。

{CT, MA, VA, NY}

このリストを関数に送信し、最適なウェイポイント順序リストを取得します

{2,0,1,3}

ここで、新しく提供された順序に従ってリストを再配置する必要があります。つまり、並べ替えた後、リストは次のようになります。

{VA, CT, MA, NY}

それを行う最適な方法は何ですか?linq を使用する方法はありますか?

4

2 に答える 2

30

次のことを試すことができます。

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();
于 2013-05-15T18:27:08.400 に答える
8

これは最も簡単なアプローチのようです:

oldItems = LoadItems(); //{"CT","MA","VA","NY"};
List<string> newItems = List<string>();
foreach(int idx in returnedIndexes)
{
   newItems.Add(oldItems[idx]);
}
于 2013-05-15T18:26:38.813 に答える