C# 배열에 값 추가하기

예를 들어 C#으로 시작해서 배열에 값을 추가해야 하는 아주 간단한 문제일 수 있습니다:

int[] terms;

for(int runs = 0; runs < 400; runs++)
{
    terms[] = runs;
}

PHP를 사용해 본 분들을 위해 제가 C#에서 하려는 작업은 다음과 같습니다:

$arr = array();
for ($i = 0; $i < 10; $i++) {
    $arr[] = $i;
}
질문에 대한 의견 (2)
해결책

이렇게 할 수 있습니다 -

int[] terms = new int[400];
for (int runs = 0; runs < 400; runs++)
{
    terms[runs] = value;
}

사용할 수도 있습니다 - # 39 의 장점은 열거합니다 기술입니까 열거합니다 전날에약혼자에게 don& 알아야 어레이입니다 명단요 인스턴스화하며 경우 크기가 된다.

List termsList = new List();
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();

, , Edit: [a) 의 루프가 List&amp T&gt lt; 이 조금 넘게 2 배 가량 비싸다 포리치 루프가 List&amp, lt, T&gt, b) 루프을 on array) 는 약 2 배 가량 비싸다, lt, 루프을 켜짐이 List&amp T>, c) 에 대해 , 는 5 배 가량 비싸다 사용하여 어레이입니다 루프을 루프을 켜짐이 List&amp T&gt lt;; 사용하여 포리치 (할 수 있는 우리 대부분은).] (https://stackoverflow.com/a/365658/495455)

해설 (8)

39, re you& 먹어서나 C # 의 경우 3, 할 수 있어 함께 한 줄 광고문:

int[] terms = Enumerable.Range(0, 400).ToArray();

이 코드를 사용하여 파일에 대한 맨 위에 시스템드링크 디렉티브을 스니핏 투명지에 가정합니다.

반면, re you& # 39 수 있는 무언가를 찾는 경우 나타날 때 동적으로 크기조정 경우. PHP 용 (I& # 39, ve 절대 실제 배운 it) 한 후, int&gt List&lt 사용할 수 있습니다. 대신 int []. , 코드 s # 39 here& 어떤 것을 다음과 같습니다.

List terms = Enumerable.Range(0, 400).ToList();

하지만, 단순히 볼 수 없는 요소 [400] 값으로 설정하여 401st 추가하기에서는. # 39 추가 (), 이렇게 하는 대신 호출하십시오 you&; d

terms.Add(1337);
해설 (0)

& # 39 를 사용하여 LinqConcat 은 이 간단한 방법

int[] array = new int[] { 3, 4 };

array = array.Concat(new int[] { 2 }).ToArray();

그 결과 3.4,2

해설 (1)

여기에 대한 답을 어떻게 해야 어레이에서는 사용하여 제공됩니다.

그러나 C # 은 것은 매우 유용합니다 불렀으매 시스템스콜레스티언스:)

컬렉션은 사용할 수 있는 대안을 돌림무늬 표시되어도 어레이에서는 배열을 사용하여 그들 중 많은 내부적으로.

예를 들어, C # 의 컬렉션 목록 불렀으매 매우 비슷한 기능을 하는 PHP 어레이입니다.

using System.Collections.Generic;

// Create a List, and it can only contain integers.
List list = new List();

for (int i = 0; i < 400; i++)
{
   list.Add(i);
}
해설 (1)

답을 따라 트레이크스 (I don& # 39 점, 충분한 답을 얻을 수 없다).

public static T[] Add(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;
    }

따라서 두 가지 이상의 항목을 추가하는 스토리지와의 전달하십시오 가공할지, 두 개의 매개 변수로 어레이에서는 참가하십시오 배열입니다.

해설 (0)

List&lt 사용하여 T>; 그러나, 이 때문에, 가장 쉬운 방법은 다른 중간 표시됨과 설명한 내용을 배열입니다 진실이며당신이 don& # 39, t, 난 그냥 data-in 바뀌엇어요 것으로 우려하고 성능을 유지할 수 있습니다.

가장 효율적인 방법 또는 라이스코피토스 라이스코프 사용 후 새로운 어레이입니다 할당하는 것으로 보인다. 아니다 싶은 항목을 추가할 경우 하드 끝까지 목록:

public static T[] Add(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;
}

내가 할 수 있는 방법 또한 게시물로의 코드는 넘겨받은 입력으로 확장명은 삽입하십시오 대상 인덱스화할 원할 경우. # 39 의 it& 조금 더 복잡하고 soundmixer. 정적임 메서드입니다 라이스코프 1-2 시간.

해설 (1)

먼저 배열을 할당해야 합니다:

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;
}
해설 (0)
int ArraySize = 400;

int[] terms = new int[ArraySize];

for(int runs = 0; runs < ArraySize; runs++)
{

    terms[runs] = runs;

}

저는 이렇게 코딩할 것입니다.

해설 (0)

C # 어레이입니다 고정 길이 항상 인덱스화됩니다. # 39 의 검색하기를 Motti& 함께 솔루션:

int [] terms = new int[400];
for(int runs = 0; runs < 400; runs++)
{
    terms[runs] = value;
}

참고로 이 어레이입니다 는 밀착형 배열입니다, 연속 블록 400 바이트입니다 드롭합니다 수 있는 것. 스케쳐내 사용하여 동적으로 크기의 어레이이며 List&amp int&gt lt;;;).

List terms = new List();
for(int runs = 0; runs < 400; runs ++)
{
    terms.Add(runs);
}

[], Lt, int 괜찼습니다 아니하고또 List&amp int&gt. 연관 배열, 즉, lt, &gt Dictionary&amp 백업이었습니다 될 것이라고 말했습니다. c # 에서. 모두 어레이에는 및 목록은 식이다.

해설 (0)
int[] terms = new int[10]; //create 10 empty index in array terms

//fill value = 400 for every index (run) in the array
//terms.Length is the total length of the array, it is equal to 10 in this case 
for (int run = 0; run < terms.Length; run++) 
{
    terms[run] = 400;
}

//print value from each of the index
for (int run = 0; run < terms.Length; run++)
{
    Console.WriteLine("Value in index {0}:\t{1}",run, terms[run]);
}

Console.ReadLine();
  • *Output : &gt.

인덱스화할 &gt, 값이 0: 400 &lt br/&gt, 가치, 인덱스에 1: 400 &lt br/&gt, 가치, 인덱스에 2: 400 값이 3:은 인덱스화할 br/&gt <; 400 &lt br/&gt, 가치, 인덱스에 4: 400 &lt br/&gt, 가치, 인덱스에 5: 400 &lt br/&gt, 가치, 인덱스에 6: 400 &lt br/&gt, 가치, 인덱스에 7: 400 &lt br/&gt, 가치, 인덱스에 8: 400 &lt br/&gt, 가치, 인덱스에 9: 400 &lt */ br/>;

해설 (2)

39, t 추가하기만 충족되었으며 어레이입니다 요소를 쉽게 can& 있습니다. 하지만 난 지위를 아웃라인된 fallen888 지정된 시간에 요소점 설정할 수 있습니다 ',' 또는 'Collection&lt int&gt int&gt 추천합니까 List&lt 사용하려면,,' 대신 ' ()' 를 사용하여 토라리 필요할 때 변환되었습니다 어레이입니다.

해설 (0)

이 경우 추가 내아기마저도 다른 변형. 이 유형의 함수형 코딩 줄 이상의 이 더 좋아요.

Enumerable.Range(0, 400).Select(x => x).ToArray();
해설 (0)

그냥 다른 외곽진입:

int runs = 0; 
bool batting = true; 
string scorecard;

while (batting = runs < 400)
    scorecard += "!" + runs++;

return scorecard.Split("!");
해설 (3)

정말로 필요한 경우 어레이에서는 다음은 프로블리 가장 간단한:

using System.Collections.Generic;

// Create a List, and it can only contain integers.
List list = new List();

for (int i = 0; i < 400; i++)
{
   list.Add(i);
}

int [] terms = list.ToArray();
해설 (0)

39 don& 모르는 경우, 이미 기존 어레이입니다 어레이나 크기는 추가하는. 이에 대해 두 가지 방법으로 이동할 수 있습니다. 첫 번째는 List&lt T&gt 사용하여, 일반 ',':

이를 위해 'var = 약관보다 테름스리스트 어레이로의 변환하십시오 할 것입니다. 토리스트 (), '추가 및 사용하는 방법입니다. 다음 (), '방식을 사용하여 약관보다 완료했으면' var = 테름스리스트스토라리 뒤로를 변환하시겠습니까 충족되었으며 어레이입니다.

var terms = default(int[]);
var termsList = terms == null ? new List() : terms.ToList();

for(var i = 0; i < 400; i++)
    termsList.Add(i);

terms = termsList.ToArray();

두 번째 방법은 크기조정 현재 어레이입니다:

var terms = default(int[]);

for(var i = 0; i < 400; i++)
{
    if(terms == null)
        terms = new int[1];
    else    
        Array.Resize(ref terms, terms.Length + 1);

    terms[terms.Length - 1] = i;
}

Net 3.5 사용하는 경우 ',' 라이오아디 (.)

이 두 가지 에셋을 동적으로 할 수 있게 해준다. 그럼 그냥 많은 항목을 추가하여 사용할 경우, ',' List&lt T&gt. # 39 의 it& 불과 몇 개 있을 경우 그 크기를 더 나은 성능을 어레이입니다. 이것은 오래 걸릴 수 있기 때문에, ',' 객체를 생성하기 위해 유명 List&lt T&gt.

      • Ticks:* 있는 배

3 항목에서와 &gt. 어레이입니다 크기조정할 시간: 6

&gt. 목록 추가 시간: 16

  • *400 항목에서와

&gt. 어레이입니다 크기조정할 시간: 305

&gt. 목록 추가 시간: 20

해설 (0)
            /*arrayname is an array of 5 integer*/
            int[] arrayname = new int[5];
            int i, j;
            /*initialize elements of array arrayname*/
            for (i = 0; i < 5; i++)
            {
                arrayname[i] = i + 100;
            }
해설 (0)
         static void Main(string[] args)
        {
            int[] arrayname = new int[5];/*arrayname is an array of 5 integer [5] mean in array [0],[1],[2],[3],[4],[5] because array starts with zero*/
            int i, j;

          /*initialize elements of array arrayname*/
            for (i = 0; i < 5; i++)
            {
                arrayname[i] = i + 100;
            }

             /*output each array element value*/
            for (j = 0; j < 5; j++)
            {
                Console.WriteLine("Element and output value [{0}]={1}",j,arrayname[j]);
            }
            Console.ReadKey();/*Obtains the next character or function key pressed by the user.
                                The pressed key is displayed in the console window.*/
        }
해설 (0)
int[] terms = new int[400];

for(int runs = 0; runs < 400; runs++)
{
    terms[runs] = value;
}
해설 (0)