मेरे पास List<string>
है, और इनमें से कुछ तार संख्याएं हैं। मैं इस सबसेट को List<int>
में निकालना चाहता हूं।तारों की सूची से इंक निकालने के लिए LINQ का उपयोग
मैंने इसे एक वर्बोज़ दिखने के तरीके में किया है - जैसा कि नीचे है - लेकिन मुझे लगता है कि यह संरचना करने के लिए एक साफ-सुथरा LINQ तरीका होना चाहिए। कोई विचार?
List<string> myStrs = someListFromSomewhere;
List<int> myInts = new List<int>();
foreach (string myStr in myStrs)
{
int outInt;
if (int.TryParse(myStr, out outInt))
{
myInts.Add(outInt);
}
}
जाहिर है मैं इस के लिए एक समाधान की जरूरत नहीं है - यह मेरे LINQ शिक्षा के लिए मुख्य रूप से है।
मेरे लिए एक और अवसर राज्य के लिए 'काश TryParse किसी पूर्णांक वापसी होगी?' (मुझे पता है, विरासत ...) –
निश्चित रूप से अधिक कुशल नहीं है, लेकिन आप 'var myInts = myStrs.Where (s => int.TryParse (s, out outnt) कर सकते हैं)। (S => int.Parse (एस)) ', जब तक आप पहले से ही परिभाषित नहीं किया गया था। यह प्रत्येक स्ट्रिंग पर 'TryParse' * और * पार्स को कॉल करता है, हालांकि - मैं वास्तव में यह सुझाव नहीं दूंगा कि – rejj
यह प्रश्न रुचि का हो सकता है: [LINQ क्वेरी प्रक्षेपण करने के लिए, उन मामलों को छोड़ना जहां प्रक्षेपण अपवाद का कारण बनता है] (http://stackoverflow.com/questions/7188623/linq-query-to-perform-a-projection-skipping-cases-where-the-projection-would-ca) मैं आपके सटीक मामले को उदाहरण के रूप में उपयोग करता हूं। –