Ali*_*Ali 0 php c# arrays multidimensional-array
我刚刚开始学习C#,我是一名优秀的PHP开发人员而且我正在尝试为练习构建一个基本的二十一点应用程序,我迷失了因为PHP中的数组和C#中的数组是如此不同
我想知道如何将以下数组用PHP编写成C#
$array = array("first_array" => array(), "second_array" => array());
Run Code Online (Sandbox Code Playgroud)
我尝试了以下但它似乎并没有真正起作用
string[] array = ["first_array" => string[], "second_array" => string[]];
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我或指导我,我将不胜感激.
要在C#中声明一个多维字符串数组,这是一个简单的问题:
string[,] array = new string[4,4];//size of each array here
Run Code Online (Sandbox Code Playgroud)
使用大括号初始化数组的方式与在C(++)中的方式相同:
string[,] array = new string[,] { {"index[0][0]", "index[0][1]"}, {"index[1][0]", "index[1][1]"} };
Run Code Online (Sandbox Code Playgroud)
但是你没有创建数组,你使用字符串作为键,这意味着你需要Dictionary:
Dictionary<string, string[]> dictionary = new Dictionary<string, string[]> {
{"first_array", new string[4]},
{"second_array", new string[4]}
};
Run Code Online (Sandbox Code Playgroud)
在a的情况下Dictionary,由于它的声明非常冗长,所以看到依赖于C#的隐式类型的代码来消除一些事情是很常见的:
var dictionary = new Dictionary<string, string[]> {
{"first_array", new string[4]},
{"second_array", new string[4]}
};
Run Code Online (Sandbox Code Playgroud)
更新:
因为您希望能够在进行时将字符串附加到数组(即:您在创建数组时不知道数组的长度),所以您无法真正使用常规字符串数组.你将不得不使用字符串列表的字典:
var dictionary = new Dictionary<string, List<string>> {
"first_list", new List<string>() { "first string", "second string" },
"second_list", new List<string>() { "first string", "second string" }
};
Run Code Online (Sandbox Code Playgroud)
现在,将它们汇集在一起,以及如何向列表添加字符串以及向字典添加列表的一些示例:
//add string to list in dictionary:
dictionary["first_list"].Add("third string");
//suppose we have an array, how to add to the dictionary?
string[] some_array = new string[2] {"string1", "string2"};
//simply initialize list using array of strings
var temp_list = new List<string>(some_array);
//add new key to dictionary
dictionary.Add("new_list", temp_list);
Run Code Online (Sandbox Code Playgroud)
注:
阵列可以被调整,所以它是可以使用的阵列,而不是一个名单,但在这种情况下,最好使用一个列表.列表旨在调整大小,阵列不是最佳工具