.NET相当于Java的List.subList()?
是否有一个.NET的等效Java的List.subList()
适用于IList
?
使用LINQ
list.Skip(fromRange).Take(toRange - fromRange)
对于通用List
,它是GetRange(int, int)
方法。
编辑:请注意,这是浅拷贝,而不是原始的“视图”。 我不认为C#提供了确切的function。
Edit2:正如Kamarey所指出的,你可以有一个只读视图:
List integers = new List () { 5, 6, 7, 8, 9, 10, 11, 12 }; IEnumerable view = integers.Skip(2).Take(3); integers[3] = 42; foreach (int i in view ) // output
以上将打印7,42,9。
GetRange
是你的答案