2012-05-19 16 views
6

क्या सी # के पास PHP के array_key_exists फ़ंक्शन का कोई समकक्ष है?क्या PHP के array_key_exists के बराबर सी # # है?

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

मैं इस सी # में बदल जाएगा:

उदाहरण के लिए, मैं इस PHP कोड है?

+0

यह एक बुरा सवाल यह है कि - सरणी प्रत्येक भाषा में अलग अलग चीजें का मतलब है - C# सरणियों में कुंजी नहीं है वे केवल एक अनुक्रमिक सूचकांक –

+0

@web_bod donchano है - एसी # नजरिए से एक php साहचर्य सरणी एक शब्दकोश है शब्दकोश में सिस्टम में। चयन। जेनेरिक नेमस्पेस ?? –

+0

हां - लेकिन वह कहता है, "मेरे पास 'सरणी' है और मैं जानना चाहता हूं कि चयनित कुंजी" - 'arrays' में मूल्य है जिसमें 'कुंजी' donchno नहीं है! –

उत्तर

6

क्षमा के रूप में अशक्त के लिए जाँच करने की आवश्यकता होगी, लेकिन PHP जैसे गतिशील सरणियों सी # में समर्थित नहीं हैं। आप क्या कर सकते हैं यह एक Dictionary<TKey, TValue>(int, int) बना सकते हैं और .Add(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 
} 
+0

गतिशील सरणी समर्थित हैं; उन्हें सूचियां कहा जाता है और उन्हें PHP सरणी की तरह कुंजी द्वारा संदर्भित किया जा सकता है। – CompanyDroneFromSector7G

1

आप 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 
} 
+0

+1, हालांकि मुझे लगता है कि महत्वपूर्ण बात यह है कि वह एक ऐरे के बजाए एक शब्दकोश चाहता है। –

+0

हाँ क्रिस तो मैं – Mennan

+0

करता हूं जो int [] –

4

सी # में एक सरणी एक निश्चित आकार है उपयोग करें ताकि आप 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()); 
} 
+3

या शब्दकोश का उपयोग करें

+0

यह उत्तर सबसे अधिक जानकारीपूर्ण लगता है। लेकिन चूंकि PHP के पास शायद एक सरणी है, शब्दकोश के बारे में एक अलग विचार है, शब्दकोश एक बेहतर दृष्टिकोण है। सरणी में आपके पास केवल इंडेक्स होते हैं, इसलिए आपके पास सरणी के आकार के रूप में कई "चाबियां" होंगी। शब्दकोश में, आपके पास केवल उतने ही महत्वपूर्ण-मूल्य जोड़े होते हैं जब आप वहां जोड़ते हैं। –

5

का उपयोग कर जोड़ने के सी # में जब आप एक नई सरणी घोषित, आप इसे स्मृति आवंटन के लिए एक आकार प्रदान करने के लिए है। यदि आप 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]); 
संबंधित मुद्दे