Linqを使用しています。私はTakeの "反対"をどうすればいいのですか?Linq:テイクの "反対"?
I.e.
aCollection.Take(n)
最後のn個の要素以外はすべて取得したいと考えています。
aCollection.Leave(n)
(なぜ:-)
編集
に聞かないでください、私は、私はそれをこのようaCollection.TakeWhile((x, index) => index < aCollection.Count - n)
または拡張子
public static IEnumerable<TSource> Leave<TSource>(this IEnumerable<TSource> source, int n)
{
return source.TakeWhile((x, index) => index < source.Count() - n);
}
の形で行うことができたとのようなものしかし、の場合Linq to SQLまたはNHibernate Linqそれはニックだったでしょう(SQL Server/T-SQLの場合)
または他のより巧妙なSQLの実装。
私はそれのようなものは何もないと思いますか? (しかし編集が実際に問題の一部ではありませんでした。)
注:これは、スキップと同じではありません! –
うわー、あなたたちは速いです! Shedalのように見え、Jim Daggの答えは私の目的にとっては最高です。 これらのうちどれを正解として選択するかはどのようにして知ることができますか?ジムは速かったが、シェダーは票を得た。 –
Shedalの答えを受け入れます。リバースはデータベース上では機能しません。データベースでは、ソートするフィールドの修飾子が本質的に必要です。ORMでテストするとランタイムエラーが発生します。私はShedalのコードをORMでテストしました。コードは正常に実行されています。 –