實現鋸齒狀數組的一種方法是字典。基於下面的代碼的東西可能會讓你開始。
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 = 0;
似乎將$x
定義爲一個整數並初始化它。行$array[$x] = array();
似乎表示$array
在給定的整數索引被引用到一個空數組。然後行$array[$x]["no"]
將該數組的"no"
元素設置爲一個字符串。我提議的C#將array
聲明爲一個字典數組。 C#字典是一種關聯數組形式,在Perl語言中它將被稱爲「哈希」。整段代碼會將值寫入結構中,並有效地將其從參數中的值初始化爲MyMethod
。
其他地方將需要一個語句,如array = new Dictionary<string, string>[gotovalue]
使array
引用一個實際的數組。
我們不知道你的PHP是做什麼的,這使得任何不知道* PHP和C#的人都很難幫助你。 –
我相信PHP數組只是散列表,所以它看起來像你想要一個'Dictionary>'而不是C#中的數組。 –
Lee