2017-03-10 91 views
0

我有一個3D數組,包含3個字符串列表,我想按字母順序排列所有數組。這甚至有可能嗎?排序3d列表var c#

這裏是我的3D陣列:

var Complete_list = new[] { name_list, Value_list, price_list }.ToList();

name_listValue_listprice_list只是簡單的List<string>

有人可以幫助嗎?

+2

你有一個數組,你用'ToList'初始化?你的問題不清楚。 –

+0

基本上,我有3個不同的列表(相同的大小)。我想將它們全部同時排序,但訂單由第一個列表定義 –

+0

您的代碼@Evgeny ??? –

回答

1

最簡單的方法是將三個列表減少爲一個包含具有三個屬性的對象的列表。之後,您可以排序等。

List<string> name_list = new List<string>(); 
List<string> value_list = new List<string>(); 
List<string> price_list = new List<string>(); 

// join the lists into a single list 
var combined = Enumerable.Range(0, name_list.Count).Select(i => new 
{ 
    name = name_list[i], 
    value = value_list[i], 
    price = price_list[i], 
}); 

// here you have a single sorted list that is ordered by 'name' 
var sorted = combined.OrderBy(v => v.name).ToList(); 

// if you need to get them back into separate lists again 
var name_list_sorted = sorted.Select(s => s.name).ToList(); 
var value_list_sorted = sorted.Select(s => s.value).ToList(); 
var price_list_sorted = sorted.Select(s => s.price).ToList(); 

此代碼假定您在每個列表中具有相同數量的項目。

+0

很好,謝謝 –