क्या लिंक में कोई विधि है जहां आप SQL स्ट्रिंग्स बनाने के लिए उपयोग कर सकते हैं जैसे ... ... जहां (ए = 1) या (ए = 2) "?"या" लिंकक में समकक्ष() lambda अभिव्यक्ति
उत्तर
आप इसे एक कहाँ खंड (विस्तार विधि) के भीतर निश्चित रूप से कर सकते हैं। यदि आपको गतिशील रूप से जटिल क्वेरी बनाने की आवश्यकता है, तो आप PredicateBuilder का उपयोग कर सकते हैं।
var query = collection.Where(c => c.A == 1 || c.B == 2);
या अपने .Where()
कॉल में एक PredicateBuilder
var predicate = PredicateBuilder.False<Foo>();
predicate = predicate.Or(f => f.A == 1);
if (allowB)
{
predicate = predicate.Or(f => f.B == 1);
}
var query = collection.Where(predicate);
भविष्यवाणियों का अच्छा उपयोग! +1 :) –
यह बहुत अच्छा काम करता था क्योंकि मुझे आने वाले पैरामीटर के मूल्यों के आधार पर मेरा निर्माण करने की आवश्यकता थी - बहुत बढ़िया! – dadwithkids
बहुत अच्छा। यह एक शर्म की बात है कि यह मानक के रूप में .NET के अंदर एक समारोह के रूप में शामिल नहीं है। – maxp
आप अपने एकल में मानक नेट बूलियन ऑपरेटरों का उपयोग कर सकते हैं जहां खंड:
MyDataSource.Where(data => data.a == 'a' || data.a == 'b')
मुझे लगता है कि यह सबसे अच्छा और सरल जवाब है। – user1477388
यह सबसे आसान जवाब है। – Eranda
एक समाधान हो सकता है गतिशील Linq:
आपके पास वे सभी का उपयोग ऑपरेटर सामान्य सी # ===> || के रूप में के लिए "या" & & के लिए "और" आदि
var something = from s in mycollection
where s.something == 32 ||
s.somethingelse == 45
select s
मैं इस विधि को पसंद करता हूं, यह अधिक प्राकृतिक लग रहा है – nXqd
का उपयोग कर, मानक बूलियन 'या' ऑपरेटर का उपयोग ||
।
var query = items.Where(item => (item == 1 || item == 2));
सभी कहाँ कॉल करता है कुछ भी पर एक बूलियन तुलना आप चाहते है, तो आप इसे के रूप में ज्यादा सशर्त तर्क के साथ भर सकते हैं के रूप में आप चाहते हैं।
यह अब .NET में बनाया गया है, यह सुनिश्चित नहीं है कि यह पहले नहीं था। मौजूदा लिंक क्वेरी को देखते हुए आप एक क्लॉज जोड़ सकते हैं जो स्ट्रिंग्स (सर्चस्ट्रिंग्स) की सरणी लेता है, और जांचें कि उनमें से कोई भी आपके द्वारा खोजे गए संग्रह में जो भी ऑब्जेक्ट मेल खाता है या नहीं। ToLower() का उपयोग करके यह सुनिश्चित करता है कि आप SQL क्वेरीज़ में केस संवेदनशीलता से बचें।
query.Where(i => SearchStrings.Any(s => i.ToLower().Contains(s.ToLower()));
आप संग्रह के वस्तु को सरणी में सभी शब्दों का मिलान करके एक 'और' विधेय के लिए एक ही बात कर सकते हैं।
query.Where(i => SearchStrings.All(s => i.ToLower().Contains(s.ToLower()));
इस उदाहरण में मैं एक संग्रह में प्रत्येक वस्तु को संबद्ध करता है, और एस SearchStrings सरणी में प्रत्येक स्ट्रिंग से सम्बंधित है।
- 1. तुलना: LINQ बनाम LAMBDA अभिव्यक्ति
- 2. जावा में .NET की Lambda अभिव्यक्ति
- 3. LINQ/Lambda
- 4. लिंकक अलग-अलग
- 5. वर्टिकल QLabel, या समकक्ष?
- 6. std :: istream या समकक्ष
- 7. LINQ से SQL: पुन: उपयोग करें lambda अभिव्यक्ति
- 8. std :: C++ 0x lambda अभिव्यक्ति का उपयोग करके परिवर्तन
- 9. Async lambda अभिव्यक्ति प्रतीक्षा रिटर्न कार्य के साथ?
- 10. रेल सत्यापन: if => Proc.new या lambda?
- 11. सूची से चुनें Lambda या linq
- 12. एक्शनस्क्रिप्ट में समकक्ष बीआईआईडी समकक्ष?
- 13. vb lambda MAX function
- 14. पुन: संरचित पाठ में मैक्रो या समकक्ष?
- 15. जहां lambda
- 16. LINQ lambda
- 17. एंड्रॉइड ग्रिड व्यू या समकक्ष
- 18. विशिष्ट या नियमित अभिव्यक्ति में
- 19. IQueryable Lambda प्रोजेक्शन सिंटेक्स
- 20. एक क्वेरी अनुकूलित करें या LINQ समकक्ष
- 21. क्या सुंदरसप/पायथन में समकक्ष समकक्ष है?
- 22. हस्सेल में टाइप भाव के लिए Lambda?
- 23. .NET में LINQ और Lambda अभिव्यक्ति की क्षमता और प्रदर्शन क्या है?
- 24. ये दो linq अभिव्यक्ति कार्यात्मक रूप से समकक्ष हैं?
- 25. नियमित अभिव्यक्ति या रिक्त
- 26. इस प्रतिनिधि को किसी अज्ञात विधि या lambda
- 27. PHP के समकक्ष दोस्त या आंतरिक
- 28. जावाएफएक्स एचटीएमएल स्टाइल (या समकक्ष) लेबल
- 29. क्या कोई 'गिट sed' या समकक्ष है?
- 30. किसी .NET वेब क्लाइंट या समकक्ष
मुझे लगता है कि आप जानते हैं कि '||' का उपयोग कैसे करें और कुछ गतिशील चाहते हैं, जैसे 'a = a.where (घंटा => घंटा <20); अगर (सप्ताहांत) एक = a.where (घंटा => घंटा> 6); '। आप यह स्पष्ट करना चाहते हैं कि अधिक स्पष्ट रूप से ... – Kobi