2013-05-15 8 views
6

C#에서 주어진 순서에 따라 목록을 재 배열 새롭게 제공되는 주문에 따라 목록을 재정렬해야합니다. 다시 정렬 한 후 목록은 다음과 같이 표시되어야합니다.다음과 같이 내가 목록을 가지고

{VA, CT, MA, NY} 

최적의 방법은 무엇입니까? linq을 사용하는 방법이 있습니까?

+6

LINQ 모든 것을 !!!! 11111ONEONE. 그러나 진지하게, 당신이리스트를 조작하고 있기 때문에, Linq를 사용해야한다는 것을 의미하지는 않습니다. 사실 Linq를 사용하면 Linq를 복잡하게 만드는 편이 간단합니다. – cadrell0

+5

@ cadrell0, 포인트가 잘 잡히는 동안 Linq에 관해서는 아무 것도 복잡하지 않습니다. –

답변

18

다음과 같은 시도 할 수 :

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(); 
+5

+1, 좋은 LINQ 솔루션. –

+4

@ weston 질문에 명확하게 - 여기에 가정은 없다. – Li0liQ

+0

OK, 나는 그리워. – weston

5

이 가장 간단한 방법처럼 보인다 :

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