2011-11-01 17 views
10

मैं के साथ सी # एएसपी नेट के लिए नया हूँ अब मैं एक समस्या के लिए समाधान की जरूरत है PHP मेंसरणी कुंजी मान

मैं इस

$arr[] = array('product_id' => 12, 'process_id' => 23, 'note' => 'This is Note'); 

//Example 
Array 
(
    [0] => Array 
     (
      [product_id] => 12 
      [process_id] => 23 
      [note] => This is Note 
     ) 

    [1] => Array 
     (
      [product_id] => 5 
      [process_id] => 19 
      [note] => Hello 
     ) 

    [2] => Array 
     (
      [product_id] => 8 
      [process_id] => 17 
      [note] => How to Solve this Issue 
     ) 

) 

मैं चाहता हूँ की तरह एक सरणी बना सकते हैं सी # के साथ एएसपी .NET में समान ऐरे संरचना बनाने के लिए।

कृपया इस समस्या को हल करने में मेरी मदद करें। अग्रिम में धन्यवाद।

उत्तर

20

एक कुंजी (आपकी स्ट्रिंग) के आधार पर किसी मान (आपकी ऑब्जेक्ट) के त्वरित लुकअप के लिए Dictionary<TKey, TValue> का उपयोग करें।

var dictionary = new Dictionary<string, object>(); 
dictionary.Add("product_id", 12); 
// etc. 

object productId = dictionary["product_id"]; 

Add आपरेशन को आसान बनाने के लिए, आप संग्रह प्रारंभ वाक्य रचना जैसे

var dictionary = new Dictionary<string, int> { { "product_id", 12 }, { "process_id", 23 }, /* etc */ }; 

संपादित

इस्तेमाल कर सकते हैं अपने अद्यतन के साथ, मैं आगे जाना है और एक उचित परिभाषित करेगा अपने डेटा को एन्सेप्लेट करने के लिए टाइप करें

class Foo 
{ 
    public int ProductId { get; set; } 
    public int ProcessId { get; set; } 
    public string Note { get; set; } 
} 

और उसके बाद उस प्रकार की सरणी या सूची बनाएं।

var list = new List<Foo> 
      { 
       new Foo { ProductId = 1, ProcessId = 2, Note = "Hello" }, 
       new Foo { ProductId = 3, ProcessId = 4, Note = "World" }, 
       /* etc */ 
      }; 

और फिर आप आदि

var firstFoo = list[0]; 
someLabel.Text = firstFoo.ProductId.ToString(); 
anotherLabel.Text = firstFoo.Note; 
+0

धन्यवाद सरणी ( [0] => सरणी ( [product_id] => 12 [PROCESS_ID] => 23 [नोट] => इस नोट है) [1] => सरणी ( [product_id] => 5 [PROCESS_ID] => 19 [नोट] => हैलो ) [2] => सरणी ( [product_id] => 8 [PROCESS_ID] => 17 [नोट] => आपको लगता है कि, मैं बस संपुटित करने के लिए एक वर्ग को परिभाषित करेगा करना चाहते हैं तो इस समस्या को ) ) मैं इस तरह करने के लिए ... – rkaartikeyan

+0

चाहते का समाधान करने के लिए आपके डेटा और बस उस वर्ग के उदाहरणों की एक सरणी या सूची है। जॉन का जवाब शायद एक अज्ञात प्रकार का सुझाव देता है, जो एक विकल्प भी है। –

+0

यकीन है कि श्रीमान, यह मेरे लिए एक बहुत मदद की जाएगी। – rkaartikeyan

4

तुम पर पुनरावृति कर सकते हैं, नियंत्रण करने के लिए बाध्य दृढ़ता से टाइप वस्तुओं की एक सूची है, आप object को string से एक मानचित्रण लिए देख रहे हैं:

Dictionary<string, object> map = new Dictionary<string, object> { 
    { "product_id", 12 }, 
    { "process_id", 23 }, 
    { "note", "This is Note" } 
}; 

वैकल्पिक रूप से, शायद आप एक अनाम वर्ग, चाहते हैं, तो यह सिर्फ चारों ओर डेटा पास करने का एक तरीका है:

var values = new { 
    ProductId = 12, 
    ProcessId = 23, 
    Note = "This is Note" 
}; 

यह वास्तव में उस चीज़ पर निर्भर करता है जिसे आप प्राप्त करने की कोशिश कर रहे हैं - बड़ी तस्वीर।

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

+0

धन्यवाद एक त्वरित जवाब देने के लिए, मैं सवाल संशोधित, एक नज़र साहब रखें। असल में मैं product_id, process_id को संग्रहीत कर रहा हूं, प्रत्येक फॉर्म पोस्ट के लिए सरणी में नोट करें। अंत में मैं सरणी में हेरफेर करूँगा और डेटाबेस में स्टोर करूँगा। – rkaartikeyan

+1

@ user707852: यह वास्तव में मेरे सवाल का जवाब नहीं बदलता है - आप या तो मामले को मेरा उत्तर लागू हो सकते हैं। हालांकि ईमानदार होने के लिए, मुझे संदेह है कि आप इन मानों को समाहित करने के लिए एक प्रकार बनाने से बेहतर होंगे ... –

+0

धन्यवाद आपके समय के लिए – rkaartikeyan

1

एसोसिएटिव सरणी का उपयोग करके सी # में एसोसिएटिव सरणी का प्रतिनिधित्व किया जा सकता है। इसकी गणनाकर्ता। वर्तमान एक कुंजीवैलपेयर वापस कर देगा।

तो अपने सरणी चाहते हैं

var associativeArray = new Dictionary<string, string>(){ {"product_id", "12"}, {"process_id"," 23", {"note","This is Note"}}; 
+0

आपके समय के लिए धन्यवाद – rkaartikeyan

1

, आपके त्वरित उत्तर के लिए प्रयास करें इस

System.Collections.Generic.Dictionary<string, object>[] map = new System.Collections.Generic.Dictionary<string, object>[10]; 

map[0] = new System.Collections.Generic.Dictionary<string,object>(); 
map[0].Add("product_id", 12); 
map[0].Add("process_id", 23); 
map[0].Add("note", "This is Note"); 

map[1] = new System.Collections.Generic.Dictionary<string,object>(); 
map[1].Add("product_id", 5); 
map[1].Add("process_id", 19); 
map[1].Add("note", "Hello"); 
+0

आपके समय के लिए धन्यवाद – rkaartikeyan

+0

मुझे लगता है कि 'सूची ' से अधिक समझदारी है यहाँ एक सरणी – svick

+0

Oups हाँ संपादित प्रश्न के साथ, एक ही संरचना है, यह बहुत अधिक समझ में भी होगा ऊपर जवाब का उपयोग करें और यह बहुत ज्यादा सुंदर है। – Khan

संबंधित मुद्दे