Привет, ребята, я написал этот код и у меня две ошибки.
Не могли бы вы помочь?
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);
}
}
Сделайте отступ всего кода четырьмя пробелами, чтобы сделать его более читабельным ...
@arin, проверьте и убедитесь, что я правильно отформатировал. Похоже, разметка не позволяет сделать 4 уровня отступа ...?
Я собираюсь проголосовать против, потому что я уверен, что компилятор уже сказал вам, что было не так.
Арин, можешь ли ты принять ответ, если получишь тот, который тебя удовлетворит Я заметил, что на все ваши вопросы никогда не был выбран ответ. Вам нужно пройти слева от голосования и нажать галочку, и ответ станет зеленым. Хорошего дня :)
Добавлен тег домашнего задания. См. stackoverflow.com/questions/230510/homework-on-stackoverflow
Извини, Даок, это мой первый день здесь, я сделал то, что ты сказал, спасибо





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