2017-03-10 4 views
0

私は文字列の3つのリストを含む3D配列を持っていて、最初の文字列リストのアルファベット順ですべての配列をソートしたいと思います。それも可能ですか?ここでソート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

これを行う最も簡単な方法は、3つのリストを3つのプロパティを持つオブジェクトを含む単一のリストに減らすことです。その後、ソートすることができます。

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

ありがとうございます –