2016-11-16 8 views
6

कैसे मैं एक सरणी से किसी भी तार निकाल सकते हैं से तार हटाने और केवल पूर्णांकों है बजायग # एक सरणी

string[] result = col["uncheckedFoods"].Split(','); 

मैं

[0] = on;  // remove this string 
[1] = 22; 
[2] = 23; 
[3] = off;  // remove this string 
[4] = 24; 

है मैं चाहता हूँ

[0] = 22; 
[1] = 23; 
[2] = 24; 

मैं

var commaSepratedID = string.Join(",", result); 

var data = Regex.Replace(commaSepratedID, "[^,0-9]+", string.Empty); 

की कोशिश की लेकिन वहाँ पहले तत्व से पहले एक अल्पविराम है, वहाँ तार को हटाने के लिए किसी भी बेहतर तरीका है?

उत्तर

10

यह सब तार जो के रूप में int

string[] result = new string[5]; 
result[0] = "on";  // remove this string 
result[1] = "22"; 
result[2] = "23"; 
result[3] = "off";  // remove this string 
result[4] = "24"; 
int temp; 
result = result.Where(x => int.TryParse(x, out temp)).ToArray(); 
+0

मुझे इस बारे में बहुत कुछ पता नहीं है तो यह दक्षता के मामले में रेगेक्स विधि से बेहतर है? – Sean83

+0

धन्यवाद, ठीक काम करता है, SO सिस्टम को आपके उत्तर को स्वीकार करने के लिए 5 मिनट प्रतीक्षा करने के लिए डिज़ाइन किया गया है। – stom

+0

@ Sean83 इस मामले में यह RegEx – fubo

0

पार्स किया जा सकता का चयन करता है भी double समर्थन करने के लिए मैं कुछ इस तरह करना होगा:

public static bool IsNumeric(string input, NumberStyles numberStyle) 
{ 
    double temp; 
    return Double.TryParse(input, numberStyle, CultureInfo.CurrentCulture, out temp); 
} 

और फिर

string[] result = new string[] {"abc", "10", "4.1" }; 
var res = result.Where(b => IsNumeric(b, NumberStyles.Number)); 
// res contains "10" and "4.1" 
+0

की तुलना में तेज़ी से होना चाहिए, मुझे केवल सरणी से पूर्णांक की आवश्यकता है, यह उत्तर भविष्य में किसी की मदद कर सकता है। धन्यवाद। – stom

0

इस प्रयास करें

dynamic[] result = { "23", "RT", "43", "67", "gf", "43" }; 

       for(int i=1;i<=result.Count();i++) 
       { 
        var getvalue = result[i]; 
        int num; 
        if (int.TryParse(getvalue, out num)) 
        { 
         Console.Write(num); 
         Console.ReadLine(); 
         // It's a number! 
        } 
       } 
+1

एक गतिशील प्रकार क्यों? स्वीकार्य व्यक्ति पर आपके उत्तर का क्या फायदा है? – Bidou

+0

गतिशील उपयोग जब मूल्य डेटा प्रकार साफ़ नहीं होते हैं, लेकिन इस मामले में यदि हम स्ट्रिंग सरणी का उपयोग करते हैं तो परिणाम – AmanMiddha

+0

आवश्यक नहीं होने पर 'गतिशील' का उपयोग कभी नहीं करें। इस मामले में, आपको 'स्ट्रिंग' का उपयोग करना होगा (भले ही यह गतिशील के साथ काम कर रहा हो ...) – Bidou