0

大家好,我写了这段代码,我有两个错误。

  1. 无效的排名说明符:预期为 ',' 或 ']'
  2. 无法将带有 [] 的索引应用于“int”类型的表达式

你能帮忙吗?

    static void Main(string[] args)
    {
        ArrayList numbers = new ArrayList();

        foreach (int number in new int[12] {10,9,8,7,6,5,4,3,2,1}) //error No.1
        {
            numbers.Add(number);
        }

        numbers.Insert(numbers.Count - 1, 75);
        numbers.Remove(7);
        numbers.RemoveAt(6);

        for(int i=0; i<numbers.Count; i++)
        {
            int number = (int) number[i]; // error No.2
            Console.WriteLine(number);
        }
    }
4

5 回答 5

6

1 - 您不必指定数组的长度,只需说 new int[]

2 - number 只是一个整数,我认为您正在尝试访问 numbers[i]

于 2008-10-23T20:28:31.977 回答
4

对于 1:

foreach (int number in new int[] {10,9,8,7,6,5,4,3,2,1})

对于 2:

int number = (int)numbers[i];

你正在使用number你应该拥有的地方numbers(复数)。

于 2008-10-23T20:31:41.097 回答
3
using System;
using System.Collections;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList numbers = new ArrayList();
            foreach (int number in new int[] { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 })
            {
                numbers.Add(number);
            }
            numbers.Insert(numbers.Count - 1, 75);
            numbers.Remove(7);
            numbers.RemoveAt(6);
            for (int i = 0; i < numbers.Count; i++)
            {
                int number = (int)numbers[i];
                Console.WriteLine(number);
            }
        }
    }
}
于 2008-10-23T20:36:43.970 回答
0

您应该将数组初始化为

new int[] { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };

编译器将为您设置大小。但你正在艰难地做这件事。试试这个:

for (int i = 10; i > 0; i-- )
{
    numbers.Add(i);
}

如果您使用的是 .Net 3.5,您还可以使用 System.Linq.Enumerable 创建一个范围:

IEnumerable<int> numbers = Enumerable.Range(1, 10).Reverse();

这将取代 ArrayList,这在 3.5 中毫无意义。由于您刚刚开始,ArrayList 一开始可能更容易掌握,但请记住泛型和 IEnumerables 之类的东西,它们非常重要。

于 2008-10-23T20:32:27.600 回答
0

为什么不是#1的以下内容?

    for (int x = 10; x > 0; --x)
    {
        numbers.Add(number);
    }

尽管将其声明为 int[12] (作为明显的意图?),但似乎我们只使用从 10 到 1 的值,包括 10 到 1。为什么foreach在这种情况下使用 a,而 afor的意图要清楚得多?

于 2008-10-23T20:38:02.190 回答