मेरे पास इनपुट के रूप में बाइट सरणी है। मैं उस सरणी को स्ट्रिंग में कनवर्ट करना चाहता हूं जिसमें सरणी मानों का हेक्साडेसिमल प्रतिनिधित्व शामिल है। यह एफ # कोड है:एफ # बाइट [] -> हेक्स -> स्ट्रिंग रूपांतरण
let ByteToHex bytes =
bytes
|> Array.map (fun (x : byte) -> String.Format("{0:X2}", x))
let ConcatArray stringArray = String.Join(null, (ByteToHex stringArray))
इससे मुझे परिणाम मिलते हैं, लेकिन मैं इसे और अधिक कॉम्पैक्ट बनाना चाहता हूं ताकि मेरे पास केवल एक ही कार्य हो। मुझे फ़ंक्शन नहीं मिल सका जो बाइटटोएक्स के के अंत में प्रत्येक बाइट के स्ट्रिंग प्रस्तुति को जोड़ देगा।
मैंने ऐरे.कोनकैट, concat_map की कोशिश की, मैंने सूचियों के साथ प्रयास किया, लेकिन सबसे अच्छा मैं प्राप्त कर सकता था सरणी या तारों की सूची।
सवाल:
- क्या सरल, सबसे खूबसूरत ऐसा करने के लिए तरीका क्या होगा?
- क्या F # में स्ट्रिंग स्वरूपण निर्माण है ताकि मैं सिस्टम असेंबली से स्ट्रिंग.फॉर्मैट को प्रतिस्थापित कर सकूं?
उदाहरण इनपुट: [0x24uy; 0xA1uy; 0x00uy; 0x1Cuy |] स्ट्रिंग "24A1001C"
परफेक्ट सीखने के लिए कर सकता था। मैंने String.Concat के साथ प्रयास किया, लेकिन मैंने "System.String.Empty" तर्क नहीं जोड़ा। – zendar