2010-01-29 14 views
7

मुझे लगता है कि मैं इस पैटर्न को बहुत कुछ करता हूं। क्या यह लिखने का एक बेहतर तरीका है?अगर किसी फोरैच पर बयान

  bool hit=false; 
      foreach (var tag in tags) 
       if (tag == sz) 
       { 
        hit = true; 
        break; 
       } 
      if (hit) continue; 
      //tags.add(sz); or whatever i wanted to do 

मुझे पता है if sz in tags अन्य भाषाओं में मौजूद है। मुझे उम्मीद है कि linq में कुछ है जो मदद कर सकता है?

if (tags.Contains(sz)) 
{ 
    // ... 
} 
+0

LINQ मदद कर सकता है। मुझे सटीक वाक्यविन्यास नहीं पता है, लेकिन कुछ चयनित टैग्स = टैग्स जैसे होंगे। जहां (टैग => टैग! = एसजे); –

+1

आपका कोड कोई मतलब नहीं है। क्या आप कुछ घुंघराले ब्रेसिज़ खो रहे हैं? फिर भी यह अभी भी समझ में नहीं आता है। –

+2

@ मार्क, इसके बारे में क्या बकवास है? मैं व्यक्तिगत रूप से कुछ और ब्रेसिज़ डालता था, लेकिन यह एक कानूनी कोड खंड है, बशर्ते कोड एक लूप के अंदर पाया जाता है, जो एक विधि, संपत्ति, घटना या सूचकांक के अंदर है, जो एक प्रकार के अंदर है। –

उत्तर

12

उदाहरण के लिए::

if (tags.Contains(sz)) ... 

अधिक सामान्य समस्या के लिए:

+0

मुझे लगता है कि आपकी धारणा अधिक सही है। – ChaosPandion

8

tags मान लिया जाये कि एक List<T> है

if (tags.Any(tag => InvolvedLogic(tag))) ... 
+0

मीठा यह किसी भी आईनेमरेबल ऑब्जेक्ट पर काम करता प्रतीत होता है! –

+0

कोई भी 'आईसीओलेक्शन ' वास्तव में, लेकिन हाँ। – Aistina

2

तुम सिर्फ अगर किसी दिए गए जानना चाहते हैं आइटम tags में है, करें:

if(tags.Any(t => t == sz)) 
{ 
    // Do stuff here 
} 

आप पाया आइटम के लिए एक संदर्भ हड़पने के लिए चाहते हैं, करते हैं:

var foundTag = tags.FirstOrDefault(t => t == sz); 
// foundTag is either the first tag matching the predicate, 
// or the default value of your tag type 
0
if (tags.Any(t=>t == sz) == true) 
{ 
    //... 
} 
+0

किसी भी के रूप में कुशल नहीं है - यह सभी वस्तुओं को तब भी चलाएगा जब यह पहले से ही एक हो। –

+1

हाँ आप सही हैं। मैंने इसे एक विकल्प के रूप में लिखा है। – NetSide

+3

दरअसल; ऐसा मत करो। अगर कोई कहता है "क्या आपके पास कोई पैसा है?" आपको जवाब देने के लिए अपनी जेब में बिलों की गणना करने की आवश्यकता नहीं है, आपको बस यह देखने की ज़रूरत है कि कोई है या नहीं। –

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