-3

我有如下的php代码

   $array[$x] = array();
   $array[$x]["no"] = $no;
   $array[$x]["cid"] = $cid;
   $array[$x]["wait"] = $wait;
   $array[$x]["prio"] = $prio;
   $array[$x]["debug"] = $command[$i];

x++;

问题:我想在 C# 中有类似上面的代码,一切都很好,但是在锯齿状数组步骤中,我很困惑如何在 C# 中做同样的事情,有人可以在这方面帮助我吗?那就是数组的索引是字符串值。

4

1 回答 1

2

实现锯齿状数组的一种方法是字典。基于以下代码的内容可能会让您入门。

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为字典数组。AC# 字典是关联数组的一种形式,在 Perl 语言中它被称为“哈希”。整段代码会将值写入结构中,有效地将其从参数中找到的值初始化为MyMethod.

在其他地方将需要一个语句,例如array = new Dictionary<string, string>[gotovalue]引用array一个实际的数组。

于 2013-06-02T12:22:57.537 回答