14

是否有List.subList()适用于Java 的 .NET 等价物IList<T>

4

3 回答 3

10

使用 LINQ

list.Skip(fromRange).Take(toRange - fromRange)
于 2009-08-17T11:18:59.703 回答
9

对于泛型List<T>,它是GetRange(int, int)方法。

编辑:请注意,这是一个浅拷贝,而不是原件的“视图”。我不认为 C# 提供了确切的功能。

Edit2:正如 Kamarey 指出的那样,您可以拥有只读视图:

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

以上将打印 7、42、9。

于 2009-08-17T11:03:45.333 回答
1

GetRange是你的答案

于 2009-08-17T11:05:05.643 回答