2016-06-10 37 views
0

我爲了我手動設置"1" "2" "5" "4" "3"等。我也有另一個類依賴於許多元素,它含有各種特性,字符串列表,其中一個是int OrderString如何比較兩個屬性,然後排序

如何根據我的字符串列表我重新安排對象的順序。

list<string> L_string = new string { "1" "2" "4" "3" "5" "6" "7"} 

此外,項目的名單,如名稱,數字,附加到他們的日期。

假設l_Item繼承產品

變種SortedMan = l_Item.OrderBy(O => o.number.ToString())的CompareTo(L_string)))。 類似的東西,但實際的工作代碼。

所以基本上在這兩個項目的金額將是相同的。我需要它按照它們在L_string中的順序重新排列Items的列表。

+1

給其他列表的代碼示例,因爲我不太瞭解。 – prospector

+0

所以不明確,語法列表 L_string無效 – Paparazzi

+0

所以現在的問題是如何根據其他列表中提供進行排序產品列表? –

回答

0

可以使用this GenericComparer class實現。

使用服用點這樣

Array.Sort(YourArray, new GenericComparer()); 

或者使用

Array.Sort(YourArray, new PropertyDescriptorComparer()); 

類的屬性。

0

假設I_Item是一個List <產品>:

var sortedList = new List<Product>(); 
foreach (var value in L_string) 
{ 
    sortedList.AddRange(I_Item.Where(x => x.number.ToString() == value)); 
} 
0

假設在L_string條目實際上對應於l_item項目,你可以做這樣的事情:

var sorted = l_item 
    .Where(item => L_string.Contains(item.number.ToString())) 
    .OrderBy(item => L_string.IndexOf(item.number.ToString())); 

Where方法過濾收集,並返回一個新的集合所有匹配的元素。 OrderBy根據L_string集合中的項目索引對集合重新排序。