2013-05-15 27 views
6

C# verilen sıraya göre bir liste yeniden düzenleme Yeni verilen siparişe göre listeyi yeniden düzenlemek zorunda. yeniden düzenlendikten sonra liste şu şekilde görünmelidir:şöyle bir liste var

{VA, CT, MA, NY} 

Bunu yapmanın en iyi yolu nedir? Linq kullanarak bir yolu var mı?

+6

LINQ HER ŞEYİ !!!! 11111ONEONE. Ama cidden, bir listeyi manipüle ettiğin için, Linq'i kullanman gerektiği anlamına gelmez. Aslına bakarsanız, Linq kullanmanız muhtemelen – cadrell0

+5

@ cadrell0'u aşırı derecede zorlarken, noktanız iyi anlaşılırsa, bu konuda Linq hakkında karmaşık bir şey yoktur. –

cevap

18

Aşağıdaki deneyebilirsiniz:

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, kolay anlaşılır LINQ çözümü. –

+4

@weston Burada açıkça belirtildiği gibi - burada hiçbir varsayım yok :) – Li0liQ

+0

Tamam, anladım anladım. – weston

5

Bu en basit yaklaşım gibi görünüyor:

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