예를 들어 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;
}
사용할 수도 있습니다 - # 39 의 장점은 열거합니다 기술입니까 열거합니다 전날에약혼자에게 don& 알아야 어레이입니다 명단요 인스턴스화하며 경우 크기가 된다.
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();
, , Edit: [a) 의 루프가 List& T> lt; 이 조금 넘게 2 배 가량 비싸다 포리치 루프가 List&, lt, T>, b) 루프을 on array) 는 약 2 배 가량 비싸다, lt, 루프을 켜짐이 List& T>, c) 에 대해 , 는 5 배 가량 비싸다 사용하여 어레이입니다 루프을 루프을 켜짐이 List& T> lt;; 사용하여 포리치 (할 수 있는 우리 대부분은).] (https://stackoverflow.com/a/365658/495455)
int[] terms = Enumerable.Range(0, 400).ToArray();
이 코드를 사용하여 파일에 대한 맨 위에 시스템드링크 디렉티브을 스니핏 투명지에 가정합니다.
반면, re you& # 39 수 있는 무언가를 찾는 경우 나타날 때 동적으로 크기조정 경우. PHP 용 (I& # 39, ve 절대 실제 배운 it) 한 후, int> List< 사용할 수 있습니다. 대신 int []. , 코드 s # 39 here& 어떤 것을 다음과 같습니다.
List<int> terms = Enumerable.Range(0, 400).ToList();
하지만, 단순히 볼 수 없는 요소 [400] 값으로 설정하여 401st 추가하기에서는. # 39 추가 (), 이렇게 하는 대신 호출하십시오 you&; d
terms.Add(1337);
여기에 대한 답을 어떻게 해야 어레이에서는 사용하여 제공됩니다.
그러나 C # 은 것은 매우 유용합니다 불렀으매 시스템스콜레스티언스:)
컬렉션은 사용할 수 있는 대안을 돌림무늬 표시되어도 어레이에서는 배열을 사용하여 그들 중 많은 내부적으로.
예를 들어, C # 의 컬렉션 목록 불렀으매 매우 비슷한 기능을 하는 PHP 어레이입니다.
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);
}
답을 따라 트레이크스 (I don& # 39 점, 충분한 답을 얻을 수 없다).
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;
}
따라서 두 가지 이상의 항목을 추가하는 스토리지와의 전달하십시오 가공할지, 두 개의 매개 변수로 어레이에서는 참가하십시오 배열입니다.
List< 사용하여 T>; 그러나, 이 때문에, 가장 쉬운 방법은 다른 중간 표시됨과 설명한 내용을 배열입니다 진실이며당신이 don& # 39, t, 난 그냥 data-in 바뀌엇어요 것으로 우려하고 성능을 유지할 수 있습니다.
가장 효율적인 방법 또는 라이스코피토스 라이스코프 사용 후 새로운 어레이입니다 할당하는 것으로 보인다. 아니다 싶은 항목을 추가할 경우 하드 끝까지 목록:
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;
}
내가 할 수 있는 방법 또한 게시물로의 코드는 넘겨받은 입력으로 확장명은 삽입하십시오 대상 인덱스화할 원할 경우. # 39 의 it& 조금 더 복잡하고 soundmixer. 정적임 메서드입니다 라이스코프 1-2 시간.
C # 어레이입니다 고정 길이 항상 인덱스화됩니다. # 39 의 검색하기를 Motti& 함께 솔루션:
int [] terms = new int[400];
for(int runs = 0; runs < 400; runs++)
{
terms[runs] = value;
}
참고로 이 어레이입니다 는 밀착형 배열입니다, 연속 블록 400 바이트입니다 드롭합니다 수 있는 것. 스케쳐내 사용하여 동적으로 크기의 어레이이며 List& int> lt;;;).
List<int> terms = new List<int>();
for(int runs = 0; runs < 400; runs ++)
{
terms.Add(runs);
}
[], Lt, int 괜찼습니다 아니하고또 List& int>. 연관 배열, 즉, lt, > Dictionary& 백업이었습니다 될 것이라고 말했습니다. c # 에서. 모두 어레이에는 및 목록은 식이다.
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();
인덱스화할 >, 값이 0: 400 < br/>, 가치, 인덱스에 1: 400 < br/>, 가치, 인덱스에 2: 400 값이 3:은 인덱스화할 br/> <; 400 < br/>, 가치, 인덱스에 4: 400 < br/>, 가치, 인덱스에 5: 400 < br/>, 가치, 인덱스에 6: 400 < br/>, 가치, 인덱스에 7: 400 < br/>, 가치, 인덱스에 8: 400 < br/>, 가치, 인덱스에 9: 400 < */ br/>;
그냥 다른 외곽진입:
int runs = 0;
bool batting = true;
string scorecard;
while (batting = runs < 400)
scorecard += "!" + runs++;
return scorecard.Split("!");
이를 위해 'var = 약관보다 테름스리스트 어레이로의 변환하십시오 할 것입니다. 토리스트 (), '추가 및 사용하는 방법입니다. 다음 (), '방식을 사용하여 약관보다 완료했으면' var = 테름스리스트스토라리 뒤로를 변환하시겠습니까 충족되었으며 어레이입니다.
var terms = default(int[]);
var termsList = terms == null ? new List<int>() : 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<int>(ref terms, terms.Length + 1);
terms[terms.Length - 1] = i;
}
Net 3.5 사용하는 경우 ',' 라이오아디 (.)
이 두 가지 에셋을 동적으로 할 수 있게 해준다. 그럼 그냥 많은 항목을 추가하여 사용할 경우, ',' List< T>. # 39 의 it& 불과 몇 개 있을 경우 그 크기를 더 나은 성능을 어레이입니다. 이것은 오래 걸릴 수 있기 때문에, ',' 객체를 생성하기 위해 유명 List< T>.
3 항목에서와 >. 어레이입니다 크기조정할 시간: 6
>. 목록 추가 시간: 16
>. 어레이입니다 크기조정할 시간: 305
>. 목록 추가 시간: 20
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.*/
}