我在python脚本中遇到了这种语法,发现它称为切片分配。您如何用C#编写此语法?
expensesAbove35Arr
答案 0 :(得分:6)
C#没有切片分配运算符,但是您可以改用List<T>
提供的方法:
list[a:b] = otherList
等同于
list.RemoveRange(a,b-a);
list.InsertRange(a, otherList);
或者,对于
list[:] = []
你可以写
list.Clear();
从技术上讲,您可以编写自己的列表类,该类继承自List<T>
并模拟python的行为(至少部分地):
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);
}
}
}