Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否存在与PHP'的C#等价物;s数组\u密钥\u是否存在?_C#_Arrays_Dynamic Arrays - Fatal编程技术网

是否存在与PHP'的C#等价物;s数组\u密钥\u是否存在?

是否存在与PHP'的C#等价物;s数组\u密钥\u是否存在?,c#,arrays,dynamic-arrays,C#,Arrays,Dynamic Arrays,C#是否有PHP函数的等价物 例如,我有以下PHP代码: $array = array(); $array[5] = 4; $array[7] = 8; if (array_key_exists($array, 2)) echo $array[2]; 我如何将其转换为C#?您可以使用ContainsKey var dictionary = new Dictionary<string, int>() { {"mac", 1000}, {"windows", 5

C#是否有PHP函数的等价物

例如,我有以下PHP代码:

$array = array();
$array[5] = 4;
$array[7] = 8;
if (array_key_exists($array, 2))
    echo $array[2];

我如何将其转换为C#?

您可以使用ContainsKey

var dictionary = new Dictionary<string, int>()
{
    {"mac", 1000},
    {"windows", 500}
};

// Use ContainsKey method.
if (dictionary.ContainsKey("mac") == true)
{
    Console.WriteLine(dictionary["mac"]); // <-- Is executed
}

// Use ContainsKey method on another string.
if (dictionary.ContainsKey("acorn"))
{
    Console.WriteLine(false); // <-- Not hit
}
var dictionary=newdictionary()
{
{“mac”,1000},
{“窗口”,500}
};
//使用ContainsKey方法。
if(dictionary.ContainsKey(“mac”)==true)
{
Console.WriteLine(dictionary[“mac”]);//C#中的数组具有固定的大小,因此您可以声明一个包含8个整数的数组

int[] array = new int[8];
然后只需检查长度

if(array.Length > 2)
{
    Debug.WriteLine( array[2] );
}
对于值类型来说这很好,但是如果您有一个引用类型数组,例如

Person[] array = new Person[8];
然后需要检查null,如中所示

if(array.Length > 2 && array[2] != null)
{
    Debug.WriteLine( array[2].ToString() );
}

很抱歉,像PHP这样的动态数组在C#中不受支持

使用System.Collections.Generic;
...
Dictionary dict=新字典();
第5、4条;
第7、8条;
如果(第5条)
{
//[5,int]存在
int-outval=dict[5];
//outval现在包含4个
}
在C#中,当你声明一个新数组时,你必须为它提供一个内存分配的大小。如果你正在创建一个
int
数组,值在实例化时预先填充,因此键将始终存在

int[] array = new int[10];
Console.WriteLine(array[0]); //outputs 0.
如果需要动态调整大小的数组,可以使用
列表

List<int> array = new List<int>
array.push(0);

if (array.Length > 5)
   Console.WriteLine(array[5]);
List数组=新列表
array.push(0);
如果(数组长度>5)
Console.WriteLine(数组[5]);

+1,虽然我认为重要的一点是他/她想要一个字典而不是数组。只要阅读php数组,它是一个有序映射,而不是数组或字典。我不确定C中是否有等价物,除非它是一个SortedDictionary。或者使用字典。这个答案看起来信息最丰富。但由于php可能有不同的不知道数组是什么,字典是一个更好的方法。在数组中你们只有索引,所以你们将有尽可能多的“键”因为数组的大小是。在字典中,您只有添加到其中的键值对。这是一个糟糕的问题-数组在每种语言中的含义不同-从c#的角度来看,php关联数组是一个字典-在c#中,数组没有键,它们只有顺序键index@web_bod系统中字典的donchano.Col选择。通用名称空间??是-但他说“我有一个
数组
,我想知道所选键上是否包含值”-
数组
没有
donchno!支持动态数组;它们被称为列表,可以像PHP数组一样被键引用。我知道我回复这条评论已经晚了8年,但我的理解是PHP数组是稀疏的。也就是说,你可以拥有
$arr[0]
$arr[2]
已定义,但
$arr[1]
未定义。
List<int> array = new List<int>
array.push(0);

if (array.Length > 5)
   Console.WriteLine(array[5]);