c# - How to remove a a particular row value from a datatable based on a condition -
मेरे पास DataTable
जैसा है
name age ---- -------- कुमर 27 किरान 29 अनू 24 पटर 34 टॉम 26 मणु 35 साचन 37 गीता 23
अब मेरे पास एक और DataTable
एक कॉलम के साथ ऐसा है: < मुझे नाम कॉलम में मूल्य की तुलना करने और उसी पंक्ति को साझा करने वाली सभी पंक्तियों को निकालने की आवश्यकता है I / P>
name ---- manu tom anu
अब परिणाम आउटपुट इस तरह होना चाहिए:
नाम आयु ------------ कुरान 27 किरण 29 पित्र 34 साचन 37 गीता 23
मैं कैसे कर सकता हूं इस परिणाम को प्राप्त करें?
एसक्यूएल तालिकाओं का मतलब है और नहीं। एक दृष्टिकोण निम्नलिखित है अपने दूसरे डेटासेट को किसी शब्दकोश में कनवर्ट करें, ऐसा कुछ:
// प्रक्रिया को सरल बनाने के लिए एक लुकअप तालिका बनाएं & lt; स्ट्रिंग, स्ट्रिंग & gt; Dict = (removeNames.AsEnumerable () में पंक्ति से (स्ट्रिंग) पंक्ति ["नाम"]) चुनें। कोऑयोगिडाइ (कश्मीर = & gt; कश्मीर);
आपको अंत में पहले लूप चाहिए, अन्यथा आपको समस्याएं ( foreach
का उपयोग नहीं कर सकते हैं, यह एक अपवाद फेंक देगा)।
// लूप से ऊपर से नीचे तक (var i = पहले डीटी। आरओ। संख्या -1, i> = 0; i--) {var पंक्ति = पहले डीटी। आरओ [i]; यदि (dict.Exists ((स्ट्रिंग) पंक्ति ["नाम"])) {firstDT.Remove (पंक्ति); }}
संपादित करें: बेहतर समाधान
आंशिक रूप से नीचे जेरोड के साथ थोड़ी चर्चा से प्रेरित, मुझे लगा कि वहां के साथ ऐसा करने का एक तरीका होना चाहिए LINQ अभिव्यक्ति जो पढ़ना और लागू करना आसान है इससे पहले, यह काम नहीं करता, क्योंकि मैं डेटारव विय को स्वयं बताता हूं, जो जब आप कुछ निकालने का प्रयास करते हैं, तो एक अमान्यऑपरेशन एक्सपॉशन
बढ़ाएगा, आपको बताएगा कि संग्रह को संशोधित किया गया था। यहाँ मैंने जो किया है, और यह काम करता है क्योंकि हम पंक्ति वस्तुओं की एक प्रतिलिपि बनाने के लिए चुनें
का उपयोग करते हैं:
// परीक्षण किया गया, WORKS // मानते हुए तालिका में {नाम है , आयु} और removeNames में शामिल हैं {name} // सब कुछ जो कि var को हटाया जाना चाहिए को छोड़कर तालिका में पंक्ति में = चयन करें। चयन करें () को हटाने के नामों में। नाम के रूप में () "नाम"] बराबर ["नाम"] को हटा दें पंक्ति चुनें; // पंक्तियों को हटाए जाने के रूप में चिह्नित करते हुए, यह एक अमान्यऑपरेशन एक्सपेक्शंस foreach (अलग-अलग पंक्ति में टूटा हुआ) पंक्ति नहीं बढ़ाएगी। हटाएं ();
Comments
Post a Comment