2009-05-02 9 views
6

मुझे अपने सी # Foreach पाश में एक जारी बयान के साथ एक समस्या है।सी # Foreach लूप - जारी रखें जारी रखें

मैं यह जांचना चाहता हूं कि डेटाग्रिडव्यू में एक खाली सेल है या नहीं, और यदि ऐसा है, तो मूल्य को प्रिंट करना छोड़ें और अगले सेल को जांचने के लिए आगे बढ़ें।

सहायता बहुत सराहना की।

foreach (DataGridViewRow row in this.dataGridView1.Rows) 
{        
    foreach (DataGridViewCell cell in row.Cells) 
    { 
     if (cell.Size.IsEmpty) 
     { 
      continue; 
     } 
     MessageBox.Show(cell.Value.ToString()); 
    } 
} 
+0

आप समस्या आप देख रहे हैं ... उल्लेख करने के लिए उपेक्षित है –

उत्तर

16

ठीक है, यदि आप वर्तमान में जाँच कर रहे हैं कि क्या सेल की आकार शून्य है। एक ग्रिड में, कॉलम में प्रत्येक सेल की एक ही चौड़ाई होती है और पंक्ति में प्रत्येक सेल की ऊंचाई समान होती है (आमतौर पर, वैसे भी)।

आप सेल के मूल्य पर आधारित जांच करना चाहते हैं। उदाहरण के लिए:। "खाली" मान में रुचि रखते हैं के किसी भी अन्य अभ्यावेदन के लिए

if (cell.Value == null || cell.Value.Equals("")) 
{ 
    continue; 
} 

Tweak इस अगर वहाँ बहुत सारे हैं, तो आप इस के लिए एक विशिष्ट विधि लिखते हैं, और जांच में इसे कहते हैं चाहते हो सकता है :

if (IsEmptyValue(cell.Value)) 
{ 
    continue; 
} 
+0

हम # प्रोग्रामर आम तौर पर रहने सी मत करो जारी/गेटो सेंट से दूर atements? मैं समझता हूं कि उनके पास कुछ जगहों पर उनकी जगहें हैं और कुछ ग़लत चीजों से दूर होने के लिए इसका उपयोग किया जा सकता है ... लेकिन व्यक्तिगत रूप से मुझे ऊपर दिए गए उदाहरणों जैसे किसी भी चीज़ के लिए जारी बयान का उपयोग करने की आवश्यकता नहीं है। –

+9

नहीं, मुझे लगता है कि जारी है और ब्रेक ठीक है - हालांकि मैंने कभी भी गोटो का उपयोग नहीं किया है। विशेष रूप से, मैं सिर्फ स्थिति को उलझाना नहीं चाहता और सबकुछ किसी अन्य ब्लॉक में रखना नहीं चाहता - घोंसले की सादगी की तुलना में पागल हो जाता है "अगर इस स्थिति को पूरा किया जाता है तो मैं इस पुनरावृत्ति में कुछ और नहीं करना चाहता हूं।" –

4

आप जारी कीवर्ड यहाँ, तुम बस ऐसा कर सकता है उपयोग करने के लिए की जरूरत नहीं है:

यहाँ कोड है

foreach (DataGridViewRow row in this.dataGridView1.Rows) 
{        
    foreach (DataGridViewCell cell in row.Cells) 
    { 
     if (!cell.Size.IsEmpty) MessageBox.Show(cell.Value.ToString()); // note the ! operator 
    } 
} 

इसके अलावा, आप जाँच कर रहे हैं कि क्या सेल का आकार खाली है। क्या यह वास्तव में आप करना चाहते हैं?

आपको क्या त्रुटियां मिल रही हैं?

2

क्या आप जांच नहीं कर रहे हैं कि सेल का मूल्य खाली नहीं है या नहीं?

if(String.IsNullOrEmpty(cell.Value.ToString())) 
    continue; 
1

मैं केवल सेल पढ़ना चाहते हैं [1] डेटा ... olny

foreach (DataGridViewRow row in this.dataGridView1.Rows) 
{        
    foreach (DataGridViewCell cell in row.Cells[1]) 
    { 
     if (cell[1].Value == null || cell.Value.Equals("")) 
{ 
    continue; 
} 

     MessageBox.Show(cell[1].Value.ToString()); 
    } 
}