2010-07-29 24 views
5

EDIT : I had tried these two ways before -तारों की सूची को युगल में कैसे परिवर्तित करें?

List<double> doubleList = 
stringList.ConvertAll(x => (double)x); 

List<double> doubleList = 
stringList.Select(x => 
(double)x).ToList(); 

और यह त्रुटि आई:

Cannot convert type 'string' to'double'

मैं कुछ similiar कि युगल के ints कन्वर्ट के बारे में पढ़ा ... लेकिन मैं तार की सूची जो मैं डबल्स और की सूची को बदलने की आवश्यकता है ConvertAll() न तो एक्सटेंशन विधि का चयन नहीं करता है। क्या कोई मेरी मदद कर सकता है।

+1

"कनवर्टअल() काम नहीं करता है न तो एक्सटेंशन का चयन करें" - क्या गलत है? कंपाइलर त्रुटि? अपवाद? कुछ और? क्या आप कोड प्रदान कर सकते हैं? –

+0

किसने इस सवाल को वोट दिया? – Nix

+0

मुझे त्रुटि मिल रही थी- 'स्ट्रिंग' को 'डबल' में परिवर्तित नहीं कर सकता लेकिन मार्क का जवाब काम करता है !! – Vishal

उत्तर

13

चयन प्रक्रिया में .NET 3.5 या उपयोग कर रहे हैं काम करने के लिए चाहिए नए:

List<string> l = new List<string> { (0.1).ToString(), (1.5).ToString() }; 
List<double> result = l.Select(x => double.Parse(x)).ToList(); 
foreach (double x in result) 
{ 
    Console.WriteLine(x); 
} 

परिणाम::

 
0,1 
1,5 

एक

List<double> result = l.Select(x => double.Parse(x)).ToList(); 

यहाँ कुछ उदाहरण कोड है इस बात से अवगत होना चाहिए कि आप किस संस्कृति का उपयोग स्ट्रिंग को पार्स करने के लिए कर रहे हैं। आप Parse ओवरलोड का उपयोग करना चाह सकते हैं जो कि संस्कृति लेता है और उदाहरण के लिए CultureInfo.InvariantCulture का उपयोग करता है।

+0

यह काम करता है !! – Vishal

0

इस बारे में कैसे?

List<string> list = [your strings] 
List<double> newList = new List<double>(); 
for(int i = 0; i < list.Count; i++) 
{ 
    double d = 0; 
    if(!double.TryParse(list[i], d)) //Error 
    newList.Add(d); 
} 
1

आप सूची के foreach विधि इस्तेमाल कर सकते हैं

List<double> dbl= new List<double>; 
stringList.ForEach(str=> dbl.Add(double.parse(str))); 
3

आप LINQ का उपयोग कर सकते हैं:

List<double> myList = myStringlist.ConvertAll(item => double.Parse(item)); 

कृपया ध्यान रखें पार्स करने डबल्स और नाव जटिल है कि हो सकता है - सिर्फ इस के बारे में सोच :

100,00 100.00

-> विभिन्न लोकेल सेटिंग

0

आशा है कि यह काम हो सकता है: सूची tmpDouble = tmpString.Select (? X => (डबल) Convert.ToDouble (x)) ToList();

संबंधित मुद्दे