Почему этот код не работает?
Вопрос
Привет, ребята, я написал этот код и у меня есть две ошибки.
<Ол>Можете ли вы помочь, пожалуйста?
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);
}
}
Решение
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);
}
}
}
}
Другие советы
1 - вам не нужно указывать длину массива, просто скажите new int []
2 - число - это целое число, я думаю, вы пытаетесь получить доступ к номерам
Для 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
(множественное число).
Почему бы не следующее для # 1?
for (int x = 10; x > 0; --x)
{
numbers.Add(number);
}
Несмотря на то, что мы объявили это как int [12] (как очевидное намерение?), похоже, что мы используем только значения от 10 до 1 включительно. Зачем использовать foreach
в этом сценарии, когда для
гораздо яснее в своем намерении?
Вы должны инициализировать массив как
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, вероятно, будет легче понять, но помните о таких вещах, как Generics и IEnumerables, они очень важны.