이 코드가 작동하지 않는 이유는 무엇입니까?
문제
안녕하세요 여러분 저는이 코드를 썼고 두 가지 오류가 있습니다.
- 잘못된 순위 지정자 : 예상 ','또는 ']'
- '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);
}
}
해결책
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- 배열의 길이를 지정할 필요가 없습니다.
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
(복수형).
#1에 대한 다음은 어떻습니까?
for (int x = 10; x > 0; --x)
{
numbers.Add(number);
}
이것을 int [12] (명백한 의도로)로 선언 했음에도 불구하고, 우리는 10에서 1까지의 값만을 사용하는 것처럼 보입니다. 왜 a를 사용합니다 foreach
이 시나리오에서 a for
의도가 훨씬 더 분명합니까?
배열을 다음과 같이 초기화해야합니다
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와 같은 것들을 염두에두고 있으면 매우 중요합니다.
제휴하지 않습니다 StackOverflow