मेरे पास कोड है

    myEntities db = new myEntities();
    var query = from s in db.mytable select s;
    if (!String.IsNullOrEmpty(str))
    {
      query = query.Where(p => p.total == str);
    }

यहां, "कुल" का प्रकार एक स्ट्रिंग है जिसमें संख्याएं और वर्ण होते हैं, उदा। "14x56xz"। मैं "कुल" स्ट्रिंग से संख्या भाग (जैसे 1456) प्राप्त करना चाहता हूं और इसे दशमलव संख्या में परिवर्तित करना चाहता हूं, कभी-कभी इसे ऋणात्मक संख्या में बदलने की आवश्यकता के साथ, कोड इस तरह दिखता है:

    query = query.Where(10 <= p => p.total <= 1000);

मैंने इसे संसाधित करने के लिए एक वर्ग लिखा है, लेकिन मुझे नहीं पता कि लिंक में इस प्रसंस्करण विधि को कैसे शुरू किया जाए।

0
Tom Jacky 13 अगस्त 2011, 10:45

1 उत्तर

सबसे बढ़िया उत्तर

बस इसे लैम्ब्डा में पार्स करें। उदाहरण के लिए:

query = query.Where(10 <= p => decimal.Parse(p.total) <= 1000m);

बेशक, अगर कोई तरीका है जिससे आप अपने डेटा मॉडल को बेहतर बना सकते हैं ताकि तार्किक-संख्यात्मक मान संख्याओं के रूप में संग्रहीत हो जाएं, यह और भी बेहतर होगा...

संपादित करें: मुझे लगता है कि आपको LINQ से Entities में "14x56xz" को 1456 में परिवर्तित करने में कठिनाई होगी। आप रूपांतरणों और नियमित अभिव्यक्तियों आदि का उपयोग करके गणना किए गए कॉलम का पर्दाफाश करने के लिए डेटाबेस पक्ष में कुछ करने में सक्षम हो सकते हैं, लेकिन मुझे यकीन नहीं है कि आप इसे LINQ में इस तरह से व्यक्त करने में सक्षम होंगे जिसे उचित रूप से परिवर्तित किया जाएगा।

1
Jon Skeet 13 अगस्त 2011, 11:36
धन्यवाद, जॉन! मुझे खेद है कि मैंने खुद को स्पष्ट नहीं किया। "कुल" संख्याओं और वर्णों से बना है, सबसे पहले, मैं "कुल" फ़ील्ड को संसाधित करना चाहता हूं, फिर इसकी तुलना दशमलव से करें। मैंने इस क्षेत्र को संसाधित करने के लिए एक मेथोड लिखा है, लेकिन मुझे नहीं पता कि इस विधि को लैम्ब्डा में कैसे लागू किया जाए।
 – 
Tom Jacky
13 अगस्त 2011, 11:00
1
@ टॉम: आपने अभी भी यह स्पष्ट नहीं किया है कि विधि कैसी दिखती है, या इनपुट कैसा दिखता है, या आप इसके साथ क्या कर रहे हैं। आपको यह भी कहने की आवश्यकता है कि क्या आप LINQ से SQL या कुछ समान, या LINQ to Objects का उपयोग कर रहे हैं - यह इस मामले में एक बड़ा अंतर बनाता है कि आप अपनी विधि का उपयोग करने में सक्षम होंगे या नहीं।
 – 
Jon Skeet
13 अगस्त 2011, 11:01
हाय, जोह। मैं लिंक टू एंटिटी का उपयोग कर रहा हूं और मैं इसके बारे में नौसिखिया हूं। मैंने प्रश्न को संशोधित किया है। बहुत बहुत धन्यवाद!
 – 
Tom Jacky
13 अगस्त 2011, 11:21