2010-08-09 13 views
6

मैं की तरह एक गतिशील LINQ क्वेरी लिखने के लिए कोशिश कर रहा हूँ में String.Contains लिखने के लिए कैसे:गतिशील Linq

var q = obj.Where("message.Contains('hello')"); 

मैं जानता हूँ कि इसके लिए

var q = obj.Where(o => o.message.Contains('hello')); 

काम करता है, लेकिन मैं गतिशील के लिए देख रहा हूँ linq समाधान

धन्यवाद।

+0

किस हिस्से को बदलने योग्य होना चाहिए? संदेश या "हैलो"? –

+0

असल में "शामिल है" – Zalan

उत्तर

1

मैं यह जानता है कि आप क्या ढूंढ रहे हैं, लेकिन सिर्फ एक बिंदु के रूप में विचार करने के लिए:

कितने आपरेशन के विभिन्न प्रकार आप प्रदर्शन करने की संभावना के आधार पर, मैं एक स्विच बयान इस संभाल करने के लिए पैदा करेगा ।

उदाहरण के लिए, कुछ स्यूडोकोड एक enum का उपयोग कर:

(OperationType एक Enum अगर वांछित है)

private object example(OperationType optype, Object obj, String match) 
{ 
    var q; 
    switch (optype) 
     { 
     case OperationType.Contains: 
      q = obj.Where(o => o.message.Contains(match)); 
     break; 
     case OperationType.EndsWith: 
      q = obj.Where(o => o.message.EndsWith(match)); 
     break; 
     case OperationType.StartsWith: 
      q = obj.Where(o => o.message.StartsWith(match)); 
     break; 
    } 
    return q; 
} 
+0

हाय जेयलटन, आपके उत्तर के लिए धन्यवाद। असल में मैं कुछ जवाब ढूंढ रहा हूं जैसे माइक ने प्रस्तावित किया। लेकिन माइक की अभिव्यक्ति काम नहीं करती है। – Zalan

11

अब मेरा उत्तर नहीं मिला।

var q = obj.Where("message.Contains(@0)", "hello"); 
संबंधित मुद्दे