2013-11-04 7 views
7

मैं निम्नलिखित कार्य हो:एफ # सरणी flatmap

let fetchTickerGroup (tickers: string[]) (sqlServer:SQLServerClient) (schema: string) = 
tickers |> Array.map(fun x -> sqlServer.FetchTimeSerie(schema,x)) 

समारोह sqlServer के माध्यम से तार की एक सरणी लेता है और, डेटा जो एक List<b> जहां b एक कस्टम परिभाषित वस्तु के रूप में sqlServer.FetchTimeSerie द्वारा दिया जाता है को हासिल करेगा। अब, सरणी मैपिंग का अर्थ है कि फ़ंक्शन fetchTickerGroupList<b>[] देता है।

मैं सोच रहा था कि क्या सरणी मानों को मैप करने के बजाय flatMap परिणाम संभव होगा।

उत्तर

12

मुझे कोई विचार नहीं है कि Flatmap है लेकिन मुझे लगता है कि आप *.collect का उपयोग करना चाहते हैं।

मुझे लगता है कि सबसे अच्छा समाधान होगा कुछ

तरह
tickers |> Array.toList |> List.collect (fun x -> sqlServer.FetchTimeSerie(schema,x)) 

आप आप ही सूची या सरणी प्रकार है कि इतने बदलने की आवश्यकता

+9

FlatMap, एकत्र करें और SelectMany इसी अवधारणा –

+1

के लिए अलग अलग नाम हैं @ गुस्तावो: धन्यवाद, स्कैला से आने से मैंने एक अनुचित शब्दावली का उपयोग किया है। – NoIdeaHowToFixThis

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