使用 GetRange 获取所有剩余项目

dev*_*her 3 c# linq list syntactic-sugar

最近,我对这个List.GetRange()功能很感兴趣。它可以从更大的列表中检索子列表。用法需要两个参数

List<T> SubList = List<T>.GetRange(10, 20) //Get 20 items, starting from index 10
Run Code Online (Sandbox Code Playgroud)

但是,如果我想使用此函数从特定索引中获取所有剩余项目怎么办?

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

有没有

  • 任何内置RestOfTheList语句不做类似的事情Length - Index
  • 有替代功能(已经存在)吗?
  • 还有其他选择吗?

或者我只是做错了什么?

Evk*_*Evk 5

由于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);
Run Code Online (Sandbox Code Playgroud)

2)使用LINQ:

var remaining = list.Skip(7).ToList(); // a bit less efficient, but usually that does not matter
Run Code Online (Sandbox Code Playgroud)