2011-04-20 16 views
5

सी # foreach पाश परिवर्तित निम्नलिखित पाश LINQलैम्ब्डा

private bool functionName(int r, int c) 
{ 
    foreach (S s in sList) 
    { 
     if (s.L.R == r && s.L.C == c) 
     { 
      return true; 
     } 
    } 

    return false; 
} 

यदि ऐसा है तो कैसे साथ IQueryable, IEnumerable या लैम्ब्डा अभिव्यक्ति का उपयोग करते लागू किया जा सकता मदद चाहिए?

+5

प्रश्न समझ में नहीं आता है और यह बहुत खुला है। कृपया http://tinyurl.com/so-hints पढ़ें और अपने प्रश्न को संशोधित करें। – Richard

+2

साक्षात्कार प्रश्न? –

+10

मजेदार हिस्सा यह है कि इन अधूरे होमवर्क सवालों के साथ भी, हम प्रतिष्ठा के एक छोटे से छोटे हिस्से को पकड़ने का जवाब दे रहे हैं :) सिस्टम बहुत अच्छी तरह से काम करता है! – Philippe

उत्तर

6

प्रयास करें:

private bool functionName(int r, int c) 
{ 
    return sList.Any(s => s.L.R == r && s.L.C == c); 
} 

Linq में कोई भी एक्सटेंशन विधि एक IEnumerable अनुक्रम (उदाहरण के लिए एक सूची हो सकता है) पर लागू होता है और सच लौटाता है यदि अनुक्रम बदले में आइटम के किसी भी विधेय के लिए सच (इस मामले में एक Lambda समारोह s => s.L.R == r && s.L.C == c)।

6

कुछ की तरह:

return sList.Any(s => s.L.R == r && s.L.C == c); 
-1

एक उदाहरण

private bool functionName(int r,int c) 
{ 
    var ret = from s in sList where s.L.R==r&&s.L.C==c select s; 
    return ret.Count()>0; 
} 
0

जब से तुम वर्गों (एसएलआर ??) के बारे में अधिक जानकारी उपलब्ध करानी चाहिए आप का उपयोग करें और मैं नहीं जानता कि क्या तुम सच में के रूप में चाहते हैं समारोह का नतीजा, यह 100 प्रतिशत निश्चित नहीं है:

return sList.Any(s => s.L.R == r && s.L.C == c); 

/ई: ऐसा लगता है कि मैं देर से थोड़ा सा था ओरी दोस्तों तुम्हारा copiying नहीं था।

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