2016-06-30 7 views
2

私は配列アクセスを持つ汎用コンテナを持っています。範囲(要素3〜10など)を別のコンテナ(この場合はリスト)にコピーしたいとします。コンテナから別のコンテナに範囲をコピーする

私はコンテナを反復処理することができますが、私はよりエレガントで、おそらくもっと速いものを望んでいました。

アイデア?あなたの「コンテナ」はIEnumerableを実装している場合

+0

ターゲットコンテナも配列の場合は、Array.Copyの方が高速になる可能性があります。https://msdn.microsoft.com/en-us/library/system.array.copy%28v=vs.110%29.aspx ?f = 255&MSPPError = -2147217396ターゲットがリストであるとすれば、反復はあなたができることの中で最高だと私は信じています。 –

+0

Array.Copyは最初の要素からのみコピーします。 n番目の要素が最初であると考えることにそれをだます方法がありますか? –

+1

あなたのコンテナは何ですか? –

答えて

4

、あなたはLINQを使用することができます:あなたは標準List<T>インスタンスで終わるしたい場合は

var list = container.Skip(3).Take(7).ToList(); 

が反復よりも何速くがあってはなりません。

+0

それは素晴らしい答えです。私のコンテナはIEnumerableを実装していないので、私はそれを使用することはできませんが、私はこれを解決しなければならないかもしれないほどの答えが好きです。 –

関連する問題