使用 GetRange 获取所有剩余项目
Get all remaining items with GetRange
最近对<a href="https://msdn.microsoft.com/en-us/library/21k0e39c.aspx" rel="nofollow noreferrer">List.GetRange()</a>
函数产生了兴趣。它可以从更大的列表中检索子列表。用法需要 两个参数:
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
?
- 是否有替换函数(已经存在)?
- 还有其他选择吗?
还是我做错了什么?
由于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
最近对<a href="https://msdn.microsoft.com/en-us/library/21k0e39c.aspx" rel="nofollow noreferrer">List.GetRange()</a>
函数产生了兴趣。它可以从更大的列表中检索子列表。用法需要 两个参数:
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
? - 是否有替换函数(已经存在)?
- 还有其他选择吗?
还是我做错了什么?
由于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