2009-09-16 3 views
4

누군가가 Windows Mobile에서 C#을 사용하여 byte []를 ArrayList로 어떻게 변환 할 수 있습니까?[]을 (를) ArrayList에?

나중에 편집 :

  1. 이 사용자 정의 형식의 인스턴스를 포함하는 ArrayList에있는 같이 갈 것입니다. 이 목록은 바이트 배열로 데이터베이스로 이동합니다 (변환은 데이터베이스 API에 의해 수행됩니다). 내가 원하는 것은 byte []를 ArrayList로 되 돌리는 것이다.

  2. .NET CF는 BinaryFormatter를 제공하지 않습니다.

+0

빠른 답장을 보내 주셔서 감사합니다! 실제로 byte []는 직렬화 된 ArrayList를 나타냅니다. 즉, 바이트 배열을 바이트의 ArrayList로 변환하고 싶지 않습니다. – thelost

+2

어떤 형식화 프로그램을 사용하여 직렬화 했습니까? 나는 주식 BinaryFormatter를 추측하고 싶은 유혹을 받는다. 아마도 처음부터 배열을 만든 코드를 보여 주면됩니다. –

+0

데이터베이스 BLOB – thelost

답변

13

모든 배열은 ICollection을 상속, 그래서 같은 방법을 사용하여 일반 목록 < 바이트 > 자신을 사용하지만, 그 각각의 바이트 값의 권투를 방지 당신은,

ArrayList list = new ArrayList(bytearray); 

을 사용할 수 있습니다 배열 배열이 해당 유형의 제네릭 IList를 정적으로 상속받지 않지만 런타임에 각 배열 인스턴스에 관련 구현을 추가합니다 (중요 참고 here 참조)

+0

'byte []를 ArrayList로 변환한다는 것은 무엇을 의미합니까? – thecoop

+0

@net에는 직렬화 된 ArrayList 인스턴스를 나타내는 바이트 배열이 있고이 바이트를 deserialize하여 ArrayList 인스턴스에 넣길 원합니다. –

+0

예, 맞습니다. – thelost

3

그냥 할 수 없습니까?

ArrayList list = new ArrayList(byteArray); 
2

ArrayList는 형식이 지정되지 않으며 호환성을 위해서만 사용해야합니다.

당신이 목록 < 바이트 > 사용하는 것이 좋습니다 :

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

편집 : 데이터베이스 API가 변환을 수행하는 경우, 그것은 역 직렬화 할 수있는 방법을 제공하지 말아야을? Reflector를 사용하여 변환 방법을 찾으십시오.

0

CF가 BinaryFormatter을 지원하지 않는 것 같습니다. 바이너리 데이터를 보내는 구성 요소를 제어합니까? 해당 구성 요소에서 데이터를 XML로 변환 할 수 없습니까? 살펴 보지 않을 경우 Compact Formatter

+0

CF 형식으로 BinaryFormatter를 사용할 수 없습니다. – thelost

+0

제어 할 수 없습니다. 데이터베이스 API가 변환을 수행합니다. – thelost

관련 문제