आपत्ति जावास्क्रिप्ट में, मैं एक वस्तु के हर संपत्ति एक साधारण के साथ पाश के लिए के रूप मेंजैसे Javascript एफ # रिकॉर्ड के माध्यम से पाशन
var myObj = {x:1, y:2};
var i, sum=0;
for(i in myObj) sum = sum + myObj[i];
इस प्रकार मैं अगर मैं एफ # के साथ इसी तरह बात कर सकते हैं सोच रहा हूँ पहुँच सकते हैं।
type MyObj = {x:int; y:int}
let myObj = {x=1; y=2}
let allValues:seq<int> = allPropertyValuesIn myObj //How do I implement allPropertyValuesIn
let sum = allValues |> Seq.fold (+) 0
स्पष्ट करने के लिए अपने इनपुट के लिए धन्यवाद
संपादित कारण है कि मैं इस तरह के काम करते हैं करने के लिए
मैं एक XML फ़ाइल जनरेटर पर काम कर रहा हूँ चाहता हूँ। इनपुट डेटाबेस से पंक्तियों को पढ़ा जाता है, और xsd पूर्वनिर्धारित है।
आइए कहें कि मेरे पास "उत्पाद" तत्व उत्पन्न होना आवश्यक है और व्यवसाय नियम के आधार पर, उत्पाद के तहत 200 बच्चे तत्व आवश्यक हो सकते हैं, कुछ वैकल्पिक हैं।
1. type Product{ Price:Money; Name:Name; FactoryLocation:Address option ... }
2. let product = {Price = Money(1.5); Name = Name ("Joe Tooth Paste"); ... }
3. let child1 = createEl ("Price", product.Price)
..
203. let allChildren = child1
::child2
::child3
..
::[]
404. let prodctEl = createElWithCildren ("Product", allChildren)
यह बहुत कठिन और अन-संक्षिप्त है: this excellent blog से सलाह के बाद, मैं अपनी पहली (बहुत मोटा) उत्पाद रिकार्ड के लिए डिजाइन किया है। एफ # में ऐसी चीज करने का बेहतर तरीका होना चाहिए। मैं प्रतिबिंब विचार पर बहुत ज्यादा नहीं हूं।
क्या कोई अन्य दृष्टिकोण है या मैं बस गलत कर रहा हूं?
यह प्रतिबिंब के साथ संभव है, लेकिन मुझे नहीं लगता कि तेज़, प्रकार सुरक्षित विकल्प मौजूद है। –
"स्पष्ट करने के लिए संपादित करें क्यों ..." आपकी समस्या बहुत बदल गई है:/यदि आप बच्चों की संरचना पर स्वचालित करना चाहते हैं तो आपको अपने बच्चों की संरचना (अपने 200 बच्चों की संरचना) को सामान्य बनाना होगा। – josejuan