是否有 C# 等效于 PHP 的 array_key_exists
本文关键字:array key exists PHP 是否 | 更新日期: 2023-09-27 18:34:38
C#是否有任何等效的PHP的array_key_exists函数?
例如,我有这个PHP代码:
$array = array();
$array[5] = 4;
$array[7] = 8;
if (array_key_exists($array, 2))
echo $array[2];
我怎样才能把它变成 C#?
抱歉,C# 不支持像 PHP 这样的动态数组。你可以做什么,创建一个字典<TKey,TValue>(int,int(并使用.添加(int, int(
using System.Collections.Generic;
...
Dictionary<int, int> dict = new Dictionary<int, int>();
dict.Add(5, 4);
dict.Add(7, 8);
if (dict.ContainsKey(5))
{
// [5, int] exists
int outval = dict[5];
// outval now contains 4
}
C# 中的数组具有固定大小,因此您需要声明一个包含 8 个整数的数组
int[] array = new int[8];
然后,您只需要检查长度
if(array.Length > 2)
{
Debug.WriteLine( array[2] );
}
这对于值类型很好,但是如果您有一组引用类型,例如
Person[] array = new Person[8];
然后,您需要检查空值,如
if(array.Length > 2 && array[2] != null)
{
Debug.WriteLine( array[2].ToString() );
}
在 C# 中,声明新数组时,必须为其提供内存分配大小。如果要创建 int
数组,则值在实例化时预先填充,因此键将始终存在。
int[] array = new int[10];
Console.WriteLine(array[0]); //outputs 0.
如果需要动态大小的数组,可以使用 List
。
List<int> array = new List<int>
array.push(0);
if (array.Length > 5)
Console.WriteLine(array[5]);
您可以使用
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
}