【问题标题】:C# How to create string type index in jagged array [closed]C#如何在锯齿状数组中创建字符串类型索引
【发布时间】:2013-05-28 18:21:30
【问题描述】:

我的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# 中做同样的事情,有人可以在这方面帮助我吗?那就是数组的索引是字符串值。

【问题讨论】:

  • 我们不知道您的 PHP 是做什么用的,这使得不知道 PHP 和 C# 的人很难为您提供帮助。跨度>
  • 我相信 PHP 数组只是哈希表,所以看起来你想要一个 Dictionary<int, Dictionary<string, string>> 而不是 C# 中的数组。

标签: c# php string indexing jagged-arrays


【解决方案1】:

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

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&lt;string, string&gt;[gotovalue] 之类的语句来使array 引用实际数组。

【讨论】:

  • 这真的有用吗?我已经尝试过了,但是如何在 c# 中初始化像字典数据类型这样的数组?那没有意义?
  • @Aemz 我已经为我的答案添加了一些解释。答案的哪个方面没有意义?
  • 它说使用未分配的局部变量“数组”,我如何初始化与声明整数 x 后所做的一样?我认为字典中没有数组类型的初始化,这就是为什么我说它没有意义。
  • @Aemz 我的答案以“基于以下代码的某些东西可能会让你开始”这句话开头,这意味着你必须做一些工作。在我回答的最后一部分中,我写了关于初始化array 的内容。您最初的问题在您想要的方面非常准确,它没有要求提供完整的工作代码,并且您没有提供足够的细节来做到这一点。
猜你喜欢
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-04
  • 2020-01-27
  • 2021-12-14
相关资源
最近更新 更多