2017-05-24 7 views
0

...でソートされた配列を返すためのショートカットの方法があります:元1のコピーを作成するために Array.Copy(originalArray, newArray) をしてから使用して: return Array.Sort (newArray) をソートされた配列を取得するには - 変更せずに元のアレイ、もちろん?使用以外のC#

+6

LINQは 'OrderBy'拡張メソッドを持っていますそれはあなたが探しているものかもしれません。 (配列が出力に必要な場合は、 '.ToArray()'を呼び出す必要があると思いますので、これはコードの長さの点ではあまり意味がありません) – adv12

+0

必ずしも格納する必要はありませんでした新しい配列で出力するので、ありがとう! – PakiPat

答えて

4

はいあなたはLINQを使用することができ、その後、戻って配列に変換します。たとえば

return array.OrderBy(o => o.Col).ToArray(); 
+0

私はこれを答えとして受け入れる前に、割り当てられた配列がOrderByが操作されているものと同じであることを本当に意味しているかどうかを知りたいと思います。また、ソートされた配列を必ずしも格納するつもりはないので、equals-toの右側にwhateversを返すことができます。 – PakiPat

+0

はい、元の配列部分を変更しないで誤ったと思うので、割り当て部分を削除します – DNKROZ

4

So 2操作、(1):順序付け、および(2)新しい配列へのコピー。私はこのようなものだと言うだろう:

int[] ReturnSorted(int[] input) 
{ 
    return input.OrderBy((a)=>a).ToArray(); 
} 
+0

私はこれが好きですが、 "...カスタムメソッドを作成する以外のもの"を追加してください。 – PakiPat

+0

@PatrickGomes明らかにメソッドは必要ありません。あなたはちょうど同様に1つのライナーを使用するかもしれません... – atlaste

+0

Woops。もちろん!ここのNoob。 :) – PakiPat

関連する問題