我有一個List,我想按另一個序列列表排序。C#List <>按另一個List值排列
List<string> Source = new List<string>() { "A" ,"B" ,"C" ,"D" ,"E" ,"F" ,"G" };
List<int> Sequence = new List<int>(){ 2, 1, 3, 5, 4, 6, 7 };
我怎樣才能得到新的列表,以便我的結果是一樣
List<string> Output = new List<string>(){ "B" ,"A" ,"C" ,"E" ,"D" ,"F" ,"G" };
附:我可以使用下面的代碼來獲得結果。但我想學習另一種方法。
private List<string> ArrangeList(List<string> i_lsData, List<int> i_nSequence)
{
List<string> lv_lsTempList = new List<string>();
foreach(int Temp in i_nSequence)
{
lv_lsTempList.Add(i_lsData[Temp]);
}
return lv_lsTempList;
}
學習使用類而不是多個相關集合。 –
'私人列表 ArrangeList(列表 i_lsData,列表 i_nSequence) { 返回i_nSequence.Zip(i_lsData,(K,V)=>新的{K,V})。的OrderBy(K => KK)。選擇( k => kv).ToList(); }' –
該序列的結果是'{2,3,1,5,4,6,7}'? –