아마도 이것은 매우 간단한 것입니다-C #으로 시작하고 배열에 값을 추가해야합니다.
int[] terms;
for(int runs = 0; runs < 400; runs++)
{
terms[] = runs;
}
PHP를 사용한 사람들을 위해 C #에서 수행하려는 작업은 다음과 같습니다.
$arr = array();
for ($i = 0; $i < 10; $i++) {
$arr[] = $i;
}
답변
당신은 이런 식으로 할 수 있습니다-
int[] terms = new int[400];
for (int runs = 0; runs < 400; runs++)
{
terms[runs] = value;
}
또는 목록을 사용할 수 있습니다. 목록의 장점은 목록을 인스턴스화 할 때 배열 크기를 알 필요가 없습니다.
List<int> termsList = new List<int>();
for (int runs = 0; runs < 400; runs++)
{
termsList.Add(value);
}
// You can convert it back to an array if you would like to
int[] terms = termsList.ToArray();
답변
C # 3으로 작성하는 경우 하나의 라이너로 수행 할 수 있습니다.
int[] terms = Enumerable.Range(0, 400).ToArray();
이 코드 스 니펫은 파일 맨 위에 System.Linq에 대한 지시문이 있다고 가정합니다.
다른 한편으로, PHP의 경우와 같이 동적으로 크기를 조정할 수있는 것을 찾고 있다면 (실제로는 그것을 배우지 못했습니다), int [] 대신 List를 사용하고 싶을 수도 있습니다 . 여기에 무슨 그 코드는 같을 것이다 :
List<int> terms = Enumerable.Range(0, 400).ToList();
그러나 terms [400]을 값으로 설정하여 401 번째 요소를 간단히 추가 할 수는 없습니다. 대신 다음과 같이 Add ()를 호출해야합니다.
terms.Add(1337);
답변
Linq 의 방법을 사용하면 Concat 은 이것을 간단하게 만듭니다.
int[] array = new int[] { 3, 4 };
array = array.Concat(new int[] { 2 }).ToArray();
결과 3,4,2
답변
배열을 사용하여 수행하는 방법에 대한 답변이 여기에 제공됩니다.
그러나 C #에는 System.Collections라는 매우 편리한 기능이 있습니다. 🙂
컬렉션은 배열을 사용하는 대신 사용할 수있는 훌륭한 대안이지만, 대부분은 배열을 내부적으로 사용합니다.
예를 들어, C #에는 PHP 배열과 매우 유사한 기능을하는 List라는 컬렉션이 있습니다.
using System.Collections.Generic;
// Create a List, and it can only contain integers.
List<int> list = new List<int>();
for (int i = 0; i < 400; i++)
{
list.Add(i);
}
답변
다른 사람들이 설명했듯이 List를 중개자로 사용하는 것이 가장 쉬운 방법이지만 입력 내용이 배열이고 데이터를 List에 보관하고 싶지 않기 때문에 성능이 걱정 될 수 있습니다.
가장 효율적인 방법은 새 배열을 할당 한 다음 Array.Copy 또는 Array.CopyTo를 사용하는 것입니다. 목록 끝에 항목을 추가하려는 경우 어렵지 않습니다.
public static T[] Add<T>(this T[] target, T item)
{
if (target == null)
{
//TODO: Return null or throw ArgumentNullException;
}
T[] result = new T[target.Length + 1];
target.CopyTo(result, 0);
result[target.Length] = item;
return result;
}
원하는 경우 대상 색인을 입력으로 사용하는 삽입 확장 메소드의 코드를 게시 할 수도 있습니다. 좀 더 복잡하고 정적 메서드 Array.Copy 1-2 번을 사용합니다.
답변
Thracx의 답변을 바탕으로 (응답 할 충분한 포인트가 없습니다) :
public static T[] Add<T>(this T[] target, params T[] items)
{
// Validate the parameters
if (target == null) {
target = new T[] { };
}
if (items== null) {
items = new T[] { };
}
// Join the arrays
T[] result = new T[target.Length + items.Length];
target.CopyTo(result, 0);
items.CopyTo(result, target.Length);
return result;
}
이를 통해 하나 이상의 항목을 배열에 추가하거나 배열을 매개 변수로 전달하여 두 배열을 결합 할 수 있습니다.
답변
먼저 배열을 할당해야합니다.
int [] terms = new int[400]; // allocate an array of 400 ints
for(int runs = 0; runs < terms.Length; runs++) // Use Length property rather than the 400 magic number again
{
terms[runs] = value;
}