2017-11-14 8 views
9

リスト内のリストを最小の整数値でソートしようとしています。これは私がこれまで行ってきたところです。例えば最小値でリストのリストをソート

var SortedList = from lists in List 
       orderby lists.List.Min(Min=>Min.value) 
       ascending 
       select list ; 

var x = new List<int>{ 5, 10, 4, 3, 0 }; 
var y = new List<int> { 4, -1, -5, 3, 2 }; 
var z = new List<int> { 3, 1, 0, -2, 2 }; 

var ListofLists = new List<List<int>> {x, y, z}; 

は私のLINQの出力はリストのリストで最小値でリストをソートするために、しなければなりません。私の例ではリストのシーケンスは次のようになります。

Y - > Z - > X

私は、LINQの式の多くを試してみましたが、Web経由で検索しました。質問は非常にシンプルなようです...助けてくれてありがとう!

+2

場合にどうするか

var sorted = ListofLists.OrderBy(l => l.Min()); 

それとも、あなたはクエリ構文を好むならば、あなたが行う必要があります重複の? – Pankaj

+0

あなたは 'ListofLists'の宣言に余分な' List <'を持っています。 – GolfWolf

+0

私のアプリケーションには最小限の重複はありません。 –

答えて

12

それは同じくらい簡単です:ここでは、それはアクションである

var sorted = from list in ListofLists 
      orderby list.Min() 
      select list; 

https://dotnetfiddle.net/bnfGOG

+0

'Enumerable.OrderBy()'がキーを1回だけ抽出するという保証はありますか?公式の[docs](https://msdn.microsoft.com/en-us/library/bb534966(v=vs.110).aspx)には何も見つかりませんでした。 –

+0

@LeonidVasilyev私も。しかし、いくつかのテスト(l.Min()を '{Console.WriteLine("。 ");に置き換えてl.Min();}')を実行した後、そうであるように見えます。私はソートするリストがある(3,7,10のリストを試してみた)のと同じように出力にmenyドットを得ます。 – GolfWolf

関連する問題