C# 使用GetRange获取所有剩余项目
最近,我对C# 使用GetRange获取所有剩余项目,c#,linq,list,syntactic-sugar,C#,Linq,List,Syntactic Sugar,最近,我对函数感兴趣。它可以从更大的列表中检索子列表。用法需要两个参数: List<T> SubList = List<T>.GetRange(10, 20) //Get 20 items, starting from index 10 List SubList=List.GetRange(10,20)//从索引10开始获取20项 但是,如果我想使用此函数从特定索引中提取剩余的所有项,该怎么办 List<T> RemainingItemsFromList
函数感兴趣。它可以从更大的列表中检索子列表。用法需要两个参数:
List<T> SubList = List<T>.GetRange(10, 20) //Get 20 items, starting from index 10
List SubList=List.GetRange(10,20)//从索引10开始获取20项
但是,如果我想使用此函数从特定索引中提取剩余的所有项,该怎么办
List<T> RemainingItemsFromList = MyList.GetRange(7, /*REST*/) //What can I insert into REST to make it retrieve everything?
List RemainingItemsFromList=MyList.GetRange(7,/*REST*/)//我可以在REST中插入什么使它检索所有内容?
有吗
- 任何内置的
语句,而不执行restoflist
之类的操作Length-Index
- 是否有替换功能(已存在)
- 还有其他选择吗
还是我只是做错了什么?由于
列表
没有提供具有所需功能的内置方法,您可以选择:
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);
list.Count-start
,例如MyList.Count-7
您可以使用LINQ的Skip(7).ToList(),但效率会低一些。@IvanStoev我在问题中指定了我不想做的Length-Index
。我明白了。我猜你想要的太多了。而LINQSkip
是如此微不足道,以至于我永远不会认为有人会要求它:)
var remaining = list.Skip(7).ToList(); // a bit less efficient, but usually that does not matter