C#没有切片赋值运算符,但您可以使用提供的方法List<T>:
list[a:b] = otherList
Run Code Online (Sandbox Code Playgroud)
相当于
list.RemoveRange(a,b-a);
list.InsertRange(a, otherList);
Run Code Online (Sandbox Code Playgroud)
或者,在空间的情况下
list[:] = []
Run Code Online (Sandbox Code Playgroud)
你可以写
list.Clear();
Run Code Online (Sandbox Code Playgroud)
从技术上讲,您可以编写自己的列表类,该类继承List<T>并模拟pythons行为(至少部分):
public class ExtendedList<T> : List<T>
{
public IEnumerable<T> this[int start, int end]
{
get
{
return this.Skip(start).Take(end - start);
}
set
{
int num = end - start;
RemoveRange(start, Count - num > 0 ? num : 0);
InsertRange(start, value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
566 次 |
| 最近记录: |