का परिणाम कास्ट करने के लिए है?
जो मामले में, मुझे लगता है निम्नलिखित काम करेगा:
ArrayList list = new ArrayList();
MyStruct[] array = new MyStruct[list.Count];
list.CopyTo(array);
(संपादित करें - बिल की toArray उपयोग अधिक सुविधाजनक है - मुझे लगता है कि एक के बारे में पता था नहीं है, लेकिन फिर, मैं बहुत मुश्किल से ही [अगर कभी ] ArrayList का उपयोग करें)
हालांकि, अगर मायस्ट्रक्चर वास्तव में एक संरचना है, तो मैं दृढ़ता से पर्याप्त नहीं कह सकता कि उत्परिवर्तनीय structs एक बुरा विचार है - यानी आप कहां सेट कर सकते हैं। और निर्माण के बाद सामग्री। स्ट्रक्चर लगभग हमेशा अपरिवर्तनीय होना चाहिए। हकीकत में, आपका MyStruct ऐसा लगता है कि यह एक वर्ग होना चाहिए। इसके अलावा - मैं वीबी पर "ऊपर" नहीं हूं, लेकिन क्या वे सार्वजनिक क्षेत्र हैं? दोबारा - अनुशंसित नहीं - गुण बेहतर होगा। मैं वीबी के बारे में पता नहीं है, लेकिन सी # 3.0 इस के लिए कुछ बहुत ही संक्षिप्त वाक्य रचना है:
public class SomeType
{
public string Name {get;set;}
public string Content {get;set;}
}
आप 2.0 या इसके बाद के संस्करण का उपयोग कर रहे हैं, तो सूची < टी > बजाय ArrayList पर विचार करें।
स्रोत
2008-10-09 16:59:58
मैं आपको नहीं बना सकता - लेकिन * कृपया * ध्यान दें कि MyStruct कितनी कक्षा होनी चाहिए, संरचना नहीं। यह एक * बहुत * भ्रम का कारण बनता है, खासकर उत्परिवर्तनीय प्रकारों (जैसे आपकी) के लिए। –
MyStruct एक वर्ग हो सकता था, लेकिन चूंकि इसमें कोई विधि नहीं है, मुझे लगता है कि केवल एक संरचना का उपयोग करना तेज़ है ?! – Vincent
नहीं; यह structs और कक्षाओं के बीच अंतर नहीं है। स्ट्रेट्स में .NET में विधियां हो सकती हैं; अंतर संदर्भ-प्रकार बनाम मूल्य-प्रकार है। –