linqを使用して、配列をソートし、その後Xより小さいすべての数値を返すにはどうすればよいですか
並べ替えにはそれを使用します:(それは良い方法ですか?)
var sorted = (配列の番号から、番号の昇順で番号を選択).ToArray();
だから私はそれを「ソート済み」配列にソートしました。
X より小さいすべての数値を返すにはどうすればよいですか。
linqを使用して、配列をソートし、その後Xより小さいすべての数値を返すにはどうすればよいですか
並べ替えにはそれを使用します:(それは良い方法ですか?)
var sorted = (配列の番号から、番号の昇順で番号を選択).ToArray();
だから私はそれを「ソート済み」配列にソートしました。
X より小さいすべての数値を返すにはどうすればよいですか。
フィルタリングする前に並べ替えたいのはなぜですか? これは、最初にフィルタリングして残りを並べ替えるよりも効率的ではありません。
var sorted = array.Where(i => i < x).OrderBy(i => i).ToArray();
またはクエリ構文で:
var sorted = (from i in array
where i < x
orderby i
select i).ToArray();
LINQ 拡張メソッドの順序はパフォーマンスに影響しませんか? (タイトルは誤解を招きます。実際にOrderBy
は、E.Lippertが回答で説明しているように、順序が重要な例外の1つです)
var result = from n in array
where n < value
orderby n
select n;
またはメソッド構文で:
var result = array.Where(n => n < value).OrderBy(n => n);
ソートされた配列が既にある場合は、TakeWhileも使用できます
var result = sortedArray.TakeWhile(n => n < value);
ソートする前にシーケンスをフィルタリングすることをお勧めします。なんで?並べ替えを行うと、すべてのアイテムが内部の並べ替えられた構造に格納されるためです。したがって、ソートする必要のある項目が少ないほど、コードはより速く動作します (そしてメモリの使用量も少なくなります)。