지그재그 배열을 달성하는 한 가지 방법은 사전입니다. 아래 코드를 기반으로 시작하면됩니다.
Dictionary<string, string>[] array;
void MyMethod(int[] ckeys, int gotovalue, string[] command)
{
int x = 0;
for(int ii = (ckeys[0] + 1); ii < gotovalue; ii++)
{
string no = preg_replace(" .*", "", command[ii]);
string temp = preg_replace("^[0-9]*. ", "", command[ii]);
string cid = preg_replace(" (.*", "", temp);
temp = preg_replace(".* (wait: ", "", command[ii]);
string wait = preg_replace(",.*", "", temp);
temp = preg_replace(".*, prio: ", "", command[ii]);
string prio = preg_replace(").*", "", temp);
array[x] = new Dictionary<string, string>();
array[x]["no"] = no;
array[x]["cid"] = cid;
array[x]["wait"] = wait;
array[x]["prio"] = prio;
array[x]["debug"] = command[ii];
x++;
}
}
string preg_replace(string aa, string bb, string cc)
{
return aa + bb + cc;
}
편집 :
나는 모든 지정되지 않은 유형의 문자열 있다고 가정하고, 질문의 초기 버전의 코드를했다 및 C#으로 변환하기 위해 노력했다. 호출 된 루틴 preg_replace
은 지정되지 않았지만 세 개의 문자열을 취하여 하나를 반환하는 것으로 보입니다.
원래 질문은 $x
을 정수로 정의하고 초기화하는 것처럼 보이는 라인 $x = 0;
이 있습니다. 줄 $array[$x] = array();
은 지정된 정수 인덱스에서 $array
이 빈 배열을 참조하도록 만들어 진다고합니다. 그런 다음 $array[$x]["no"]
행은 해당 배열의 "no"
요소를 문자열로 설정합니다. C# 내가 제안한 array
사전의 배열로 선언했다. C# 사전은 Perl 언어에서 연관 배열 형태로 '해시'라고합니다. 전체 코드 조각은 구조체에 값을 쓰고 매개 변수에있는 값에서 효과적으로 초기화합니다 (MyMethod
).
array
을 실제 배열로 나타내려면 array = new Dictionary<string, string>[gotovalue]
과 같은 문구가 필요합니다.
우리는 PHP가 의도하는 바를 모릅니다. 따라서 PHP와 C# 모두를 모르는 사람들이 여러분을 도울 수 있습니다. –
PHP 배열은 해쉬 테이블 일 뿐이므로 C#의 배열 대신 Dictionary>을 사용하는 것처럼 보입니다. –
Lee