سؤال

هل يمكن لأحد أن يقول لي كيف يمكنني تحويل byte[] إلى ArrayList باستخدام C# ضمن Windows Mobile؟

التعديل لاحقا:

  1. سيكون هذا مثل وجود قائمة ArrayList تحتوي على مثيلات من النوع المخصص.تنتقل هذه القائمة إلى قاعدة بيانات (إلى كائن ثنائي كبير الحجم) كمصفوفة بايت (يتم التحويل بواسطة واجهة برمجة تطبيقات قاعدة البيانات)؛ما أريده هو إعادة البايت[] إلى ArrayList؛

  2. لا يوفر .NET CF BinaryFormatter؛

هل كانت مفيدة؟

المحلول

جميع المصفوفات ترث من ICollection، لذلك يمكنك فقط استخدام

ArrayList list = new ArrayList(bytearray);

على الرغم من أنني سأستخدم القائمة العامة <byte> بنفسي بنفس الطريقة، لأن ذلك يمنع الملاكمة لكل قيمة بايت في المصفوفة.على الرغم من أن المصفوفات لا ترث بشكل ثابت قائمة IList العامة للنوع المعني، إلا أن CLR يضيف تطبيقات ذات صلة لكل مثيل مصفوفة في وقت التشغيل (راجع الملاحظة المهمة هنا)

نصائح أخرى

لا يمكنك أن تفعل هذا فقط؟

ArrayList list = new ArrayList(byteArray);

ArrayList غير مكتوب، ويجب استخدامه فقط من أجل التوافق.

أقترح عليك استخدام قائمة<byte>:

var list = new List<byte>(byteArray);

يحرر:إذا كانت واجهة برمجة تطبيقات قاعدة البيانات تقوم بالتحويل، ألا يجب أن توفر طريقة لإلغاء التسلسل؟حاول استخدام Reflector لمعرفة كيفية إجراء التحويل.

يبدو أن CF لا يدعم BinaryFormatter.هل تتحكم في المكون الذي يرسل تلك البيانات الثنائية؟ألا يمكنك تحويل البيانات إلى Xml في هذا المكون؟إذا لم نلقي نظرة على المنسق المضغوط

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top