List in C# - passing multiple entries as a single object -
मेरे पास एक विधि है (सी #)
सार्वजनिक शून्य MethodName (सूची & lt; आदेश & gt; आदेश , आईआईडी आईडी)
मुझे इसे एक मुख्य पृष्ठ पर पास करना होगा, जिसमें मुझे आईडी में पूर्णांक मान देना है, मैं एक ही सूची में एक से अधिक आइटम्स को पारित नहीं कर पा रहा हूं।
सूची क्रम में दो नंबर प्रविष्टियां होनी चाहिए, (यानी आदेश। संख्या 1 और ऑर्डर। Number2)
कैसे मैं एक सूची को पैरामीटर के रूप में पास करूँगा जिसमें इस नंबर की संख्या 1 और 2, ताकि मैं पाश के माध्यम से इसे पा सकता हूं और इसे ढूंढ सकता हूं।
धन्यवाद।
वर्ग आदेश {सार्वजनिक int number1 {get; सेट; } सार्वजनिक पूर्णांक संख्या 2 {प्राप्त करें; सेट; } ...} सूची & lt; आदेश & gt; आदेश = नई सूची & lt; आदेश & gt; {{संख्या 1 = 123, संख्या 2 = 234}, {संख्या 1 = 321, संख्या 2 = 432}};
आप एक को खोजने के लिए आदेश
खोज करने में सक्षम होना चाहते हैं जहां number1 == आईडी || संख्या 2 == आईडी
मान लें कि दिए गए आईडी के साथ केवल एक ही ऑर्डर है या आप पहले से एक का उपयोग कर ठीक है जो आप पाते हैं कि आप कर सकते हैं:
सार्वजनिक आदेश FindOrderById (सूची & lt; आदेश & gt; ऑर्डर, int id) {foreach ( आदेश में आदेश आदेश) {यदि (order.number1 == आईडी || order.number2 == आईडी) {वापसी आदेश; } } // कोई नहीं मिला। रिक्त वापसी, अपवाद छोड़ें, आदि वापसी नल; } ... सूची & lt; आदेश & gt; आदेश = नई सूची & lt; आदेश & gt; {...}; आदेश मिला ऑर्डर = खोजऑर्डर बीआईआईडी (आदेश, 123); यदि (foundOrder == null) {// नहीं मिला} अन्य {// मिला}
आप इस नाटकीय रूप से छोटा करने के लिए LINQ का उपयोग भी कर सकते हैं। मैंने कुछ बदलाव शामिल किए हैं।
सूची & lt; आदेश & gt; आदेश = नई सूची & lt; आदेश & gt; {...}; इंट आईडी = 123; // अपवाद फेंकें अगर बिल्कुल एक ऑर्डर नहीं मिला (कोई भी या एक से अधिक नहीं) ऑर्डर मिले ऑर्डर = ऑर्डर। सिंगल (ओ = & gt; ओ.एनम्बर 1 == आईडी || ओ.एनम्बर 2 == आईडी); // रिटर्न नल यदि बिल्कुल एक ऑर्डर नहीं मिला तो ऑर्डर मिले ऑर्डर = ऑर्डर। सिंगलऑर डीफॉल्ट (ओ = & gt; ओ.एनम्बर 1 == आईडी || ओ.एनम्बर 2 == आईडी); // सभी आदेश लौटाएं जो IEnumerable & lt; आदेश & gt; FoundOrders = commands.Where (ओ = & gt; o.number1 == आईडी || o.number2 == आईडी);
Comments
Post a Comment