Is there a .NET equivalent of Java's List.subList()
that works on IList<T>
?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
using LINQ
list.Skip(fromRange).Take(toRange - fromRange)
回答2:
For the generic List<T>
, it is the GetRange(int, int)
method.
Edit: note that this is a shallow copy, not a 'view' on the original. I don't think C# offers that exact functionality.
Edit2: as Kamarey points out, you can have a read-only view:
List<int> integers = new List<int>() { 5, 6, 7, 8, 9, 10, 11, 12 };
IEnumerable<int> view = integers.Skip(2).Take(3);
integers[3] = 42;
foreach (int i in view )
// output
The above will print 7, 42, 9.
回答3:
GetRange
is your answer