这是我的代码,但是clear
方法不起作用,但是我找不到错误。这是第一次清除方法不起作用,有人可以帮助我吗?
using System;
using System.Collections.Generic;
public class test{
public static void Main()
{
try {
int[] myArr = {-1, 4, 8, 6};
PrintIndexAndValues(myArr);
Console.WriteLine();
Console.WriteLine("Taking index out of bound:");
Array.clear(myArr, 1, 2);
Console.WriteLine("Array After Operation:");
PrintIndexAndValues(myArr);
}
}
public static void PrintIndexAndValues(int[] myArr)
{
for (int i = 0; i < myArr.Length; i++) {
Console.WriteLine("{0}", myArr[i]);
}
}
}
来自Arrays (C# Programming Guide):
创建数组实例时将确定维数和每个维的长度。这些值在实例的生存期内无法更改。
如果您希望能够以您喜欢的方式使用Clear(),则应改用List:
List<int> myList = new List<int>{-1, 4, 8, 6};
// Do some stuff with your list
myList.Clear();
编辑:您的PrintIndexAndValues实际上仅打印值,这是您可以执行的操作:
public static void PrintIndexAndValues(List<int> myArr)
for (int i = 0; i < abc.Count; i++)
{
Console.WriteLine("{0}: {1}", i, abc[i]);
}
Edit2:刚刚意识到您可能想删除数组的第一个和最后一个元素,而不是清除整个数组?这应该可以解决问题:
myList.RemoveAt(0)
myList.RemoveAt(3)
以下是您的更正代码
using System;
using System.Collections.Generic;
public class Test
{
public static void Main()
{
int[] myArr = {-1, 4, 8, 6};
PrintIndexAndValues(myArr);
Console.WriteLine();
Console.WriteLine("Taking index out of bound:");
Array.Clear(myArr, 0, myArr.Length);
Console.WriteLine("Array After Operation:");
PrintIndexAndValues(myArr);
}
public static void PrintIndexAndValues(int[] myArr)
{
for (int i = 0; i < myArr.Length; i++)
Console.WriteLine("{0}", myArr[i]);
}
}
这会将数组中的所有值设置为0。