2011-02-07 23 views
65

मैं Array को List<object> में सी # में कैसे परिवर्तित करूं?मैं सी # में एक एरे को एक सूची <object> में कैसे परिवर्तित करूं?

+9

मुझे नहीं पता कि इस सवाल के साथ क्या गलत है .. -5? वास्तव में? –

+4

+1 क्योंकि यह एक आसान, प्रभावी सवाल है जिसके लिए मुझे SO पर डुप्लिकेट नहीं मिला। (डाउनवॉटर को टिप्पणी या पुनर्विचार करना चाहिए।) Http://stackoverflow.com/questions/1003841/how-do-i-move-the-turtle-in-logo http://blog.stackoverflow.com/2009/06/podcast -58/ – JYelton

+0

संभावित डुप्लिकेट [सिस्टम का रूपांतरण। सूची में परिवर्तन] (http://stackoverflow.com/questions/1603170/conversion-of-system-array-to-list) –

उत्तर

89
List<object> list = myArray.Cast<Object>().ToList(); 

तो सरणी तत्वों के प्रकार के लिए एक संदर्भ प्रकार है, तुम बाहर छोड़ सकते हैं .Cast<object>() के बाद से सी # 4 इंटरफ़ेस सह विचरण अर्थात जोड़ा एक IEnumerable<SomeClass> एक IEnumerable<object> के रूप में इलाज किया जा सकता।

List<object> list = myArray.ToList<object>(); 
+28

सुनिश्चित करें कि आप सिस्टम का उपयोग कर रहे हैं। लिंक –

+0

क्या यह केवल वीएस2015 में काम करता है? वीएस2012 के तहत: 'System.Array' में 'कास्ट' की परिभाषा नहीं है और 'System.Array' प्रकार के पहले तर्क को स्वीकार करने वाली कोई विस्तार विधि 'कास्ट' नहीं मिल सकती है (क्या आप एक निर्देश या असेंबली संदर्भ का उपयोग कर रहे हैं?) – ajeh

+0

ऐसा करने का प्रदर्शन ओवरहेड क्या है? कोई? –

4
private List<object> ConvertArrayToList(object[] array) 
{ 
    List<object> list = new List<object>(); 

    foreach(object obj in array) 
    list.add(obj); 

    return list; 
} 
12

List<object>.AddRange(object[]) चाल करना चाहिए। यह बेकार स्मृति आवंटन के सभी प्रकार से बच जाएगा। तुम भी कुछ इस तरह Linq इस्तेमाल कर सकते हैं,: object[].Cast<object>().ToList()

33

निर्माता का उपयोग करें: new List<object>(myArray)

+2

इस शैली के बारे में एक अच्छी बात यह है कि यह सूची बनाता है और देता है, ताकि आप अधिक विधियां (उदा।' उपयोगकर्ता (उपयोगकर्ता नाम)') जोड़ सकें। अगर कथन :) एक पंक्ति में तर्क के गुच्छा को क्रैम करने के लिए उपयोगी :)। – Patrick

8

सूची <> निर्माता जो कुछ भी लागू करता IEnumerable, इसलिए स्वीकार कर सकते हैं ...

 object[] testArray = new object[] { "blah", "blah2" }; 
     List<object> testList = new List<object>(testArray); 
0

एक और तरीका

List<YourClass> list = (arrayList.ToArray() as YourClass[]).ToList(); 
0

यह आपको एक ऑब्जेक्ट भेजने की अनुमति देता है:

private List<object> ConvertArrayToList(dynamic array) 
3

तो सरणी आइटम और सूची आइटम एक ही हैं

List<object> list=myArray.ToList(); 
+0

मुझे System.Linq का उपयोग करके उपयोग करना पड़ा; इसे काम करने के लिए; यकीन नहीं है कि क्यों। – user3752281

0

तुम भी सीधे एक सरणी के साथ इस सूची को प्रारंभ कर सकते हैं:

List<int> mylist= new List<int>(new int[]{6, 1, -5, 4, -2, -3, 9}); 
1

सब कुछ हर किसी को कह रहा है सही तो है,

int[] aArray = {1,2,3}; 
List<int> list = aArray.OfType<int>().ToList(); 

एक ऐरे को एक सूची, सूची में बदल देगा। हालांकि सबसे बड़ी बात यह है कि टिप्पणियों का एक बहुत से लापता है कि आप अपने वर्ग

using System.Collections.Generic; 
using System.Linq; 

मुझे आशा है कि इस मदद करता है के शीर्ष पर इन 2 बयानों का उपयोग कर की जरूरत है!

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

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