.NET 相当于 Java 的 List.subList()?

2022-09-04 02:06:19

有没有 Java 的 List.subList() 的 .NET 等效项?IList<T>


答案 1

使用 LINQ

list.Skip(fromRange).Take(toRange - fromRange)

答案 2

对于泛型,它是方法。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。