2016-12-25 4 views
2

最近、私はList.GetRange()関数に興味を持っています。より大きなリストからサブリストを取り出すことができます。使用方法は、二つの引数を必要です。残りのアイテムをGetRangeで取得する

List<T> SubList = List<T>.GetRange(10, 20) //Get 20 items, starting from index 10 

しかし、私はこの機能で、特定のインデックスからすべての残りアイテムを取るしたい場合は?

List<T> RemainingItemsFromList = MyList.GetRange(7, /*REST*/) //What can I insert into REST to make it retrieve everything? 

  • は、任意の組み込みのRestOfTheList声明Length - Indexのようなものをやってなくてありますか?
  • どのような置換機能(既に存在していますか?)
  • 他の代替手段はありますか?

または私は単に何か間違っていますか?

+0

を'list.Count - 開始'、例えば'MyList.Count - 7' –

+0

LINQのSkip(7).ToList()を使うことができますが、これはやや効率が悪くなります。 – Evk

+0

@IvanStoev私は 'Length - Index'をしたくないという質問で私は指定しました。 – devRicher

答えて

1

Listは、必要な機能を組み込みの方法を提供していないので、あなたのオプションは次のとおりです。

1)拡張メソッドを自分で作成します。

public static class ListExtensions { 
    public static List<T> GetRange<T>(this List<T> list, int start) { 
     return list.GetRange(start, list.Count - start); 
    } 
} 

var remaining = list.GetRange(7); 

2)LINQを使用します

var remaining = list.Skip(7).ToList(); // a bit less efficient, but usually that does not matter 
関連する問題