शुभ दोपहर, सब!क्या F # में अनुक्रम में संग्रह को परिवर्तित करने का कोई सुरक्षित तरीका है?
तो मैं एक कार्यात्मक डेटा संरचना में .NET संग्रह कास्टिंग करने के तरीकों के साथ खेल रहा हूं। सबसे अच्छा मैं प्राप्त करने में सक्षम हूं इसे पहले एक सीक में डालना है और उसके बाद जो भी मैं चाहता हूं।
समस्या यह है कि ऐसा लगता है कि यह ब्रेक प्रकार अनुमान है, जो स्पष्ट रूप से असुरक्षित है।
उदाहरण:
let a = new System.DirectoryServices.DirectorySearcher("<query>") in
let entries = a.FindAll()
let entries_list =
let (entries_seq : seq<obj>) = Seq.cast entries_list in
Seq.toList entries_Seq
in
entries_list (* list of AD objects found from query, has type obj *)
आदेश कुछ भी entries_list के साथ उपयोगी करने के लिए, मुझे क्या करना होगा:,
entries_list :?> SearchResult
एक seq < 'एक> विफल रहता है के लिए यह सामान्यीकरण करने के लिए कोशिश कर रहा है के बाद से कंपाइलर को अभी भी आवश्यकता है कि मैं स्थिर रूप से इसके गणक टाइप करें (जो समझ में आता है)।
क्या इससे बचने का कोई तरीका है? मुझे लगता है कि यह एक कार्यात्मक तरीके से .NET डेटा संरचनाओं का उपयोग करने की एक सीमा है।
क्षमा करें अगर यह एक नौसिखिया प्रश्न है; मैं सामान्य रूप से एफ # और कार्यात्मक प्रोग्रामिंग के लिए हरा हूं (और इसे प्यार कर रहा हूँ!)। चीयर्स!
- कार्लोस।
'प्रविष्टियों_seq: seq <_> कर रहा है ...'काम - यह दृढ़ता से टाइप किया गया अनुक्रम –
देना चाहिए; मुझे एक मूल्य प्रतिबंध त्रुटि मिलती है, जो कि मैं पहले जो देख रहा था उसके अनुरूप है। –