2010-01-27 7 views
6

केस को निर्धारित करने के लिए सरणी में किस संख्या के विपरीत आप सरणी संख्या के VALUE का उपयोग कैसे करते हैं? मेरी कोड में:केस स्विचिंग के लिए सरणी मान का उपयोग कैसे करें (सरणी संख्या नहीं)

for (int x = 0; x < 3; x++) 
     { 
      switch (position[x]) 
      { 
       case 0: 
        label1.Text = people[x]; 
        break; 
       case 1: 
        label2.Text = people[x]; 
        break; 
       case 2: 
        label3.Text = people[x]; 
        break; 
      } 
     } 

जब ऐसा चलाया जाता है, यह स्थिति में एक्स का उपयोग करता है [] के रूप में विरोध किया जो मामले उपयोग करने के लिए निर्धारित करने के लिए स्थान देने के लिए [x] के मूल्य। उदाहरण के लिए, जब x 0 है, लेकिन स्थिति [x] का मान 1 है, तो यह केस 0 का उपयोग करता है। इसके बजाय मैं मूल्य कैसे प्राप्त करूं?

संपादित करें: मेरा कोड वास्तव में समस्या थी .... किसी कारण से सुबह में डीबगिंग में झूठी छवियां बनाने का असर पड़ता है ...: पी एफवाईआई के रूप में, यहां सही कोड था ...

for (int x = 0; x < 3; x++) 
     { 
      if (position[x] == 2) 
      { 
       position[x] = 0; 
      } 

      else 
      position[x]++; 

     } 

     for (int x = 0; x < 3; x++) 
     { 
      int val = position[x]; 
      switch (val) 
      { 
       case 0: 
        label1.Text = people[x]; 
        break; 
       case 1: 
        label2.Text = people[x]; 
        break; 
       case 2: 
        label3.Text = people[x]; 
        break; 
      } 

स्थिति की ऊपरी पहली उपस्थिति [x] में, मैंने इसके बजाय केवल x रखा था। पूरी सहायताके लिए शुक्रिया!

+1

'स्थिति' तो का उद्देश्य क्या है? – ata

+1

आपका कोड ठीक दिखता है, क्या आप वाकई समस्या है? –

+1

मुझे इस कोड के साथ कुछ भी गलत नहीं दिख रहा है। क्या आप निश्चित हैं कि स्थिति में मूल्य [] हैं जैसा कि आप उन्हें उम्मीद करते हैं? – Aaron

उत्तर

3

इस प्रयास करें:

for (int x = 0; x < 3; x++) 
    { 
     int val = position[x]; 
     switch (val) 
     { 
      case 0: 
       label1.Text = people[x]; 
       break; 
      case 1: 
       label2.Text = people[x]; 
       break; 
      case 2: 
       label3.Text = people[x]; 
       break; 
     } 
    } 

हो सकता है कि कुछ आसान कहने के लिए होगा:

for(int x = 0; x < 3; x++) 
{ 
    Label label = MyForm.ActiveForm.Controls["label" + position[x]] as Label; 
    if (label != null) label.Text = people[x]; 
} 
+1

इस के अर्थशास्त्र वही हैं जो ओपी ने पोस्ट किया था। – jason

+0

क्या यह समस्या थी .... इसलिए यह काम करता, इसलिए चेक किया गया। – Bloodyaugust

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