2013-06-21 3 views

답변

1

글쎄, 우선주의해야 할 점은 어레이에서 값을 제거 할 수 없다는 것입니다. 따라서 원위치로 그 값을 처리 할 수 ​​없습니다. 그래서 아마도 다음과 같습니다 :

static byte[] Demungify(byte[] value) 
{ 
    var result = new List<byte>(value.Length); 
    bool xor = false; 
    for (int i = 0; i < value.Length; i++) 
    { 
     byte b = value[i]; 
     if (xor) 
     { 
      b ^= 0x20; 
      xor = false; 
     } 
     if (b == 0x7D) 
     { 
      xor = true; // xor the following byte 
      continue; // skip this byte 
     } 
     result.Add(b); 
    } 
    return result.ToArray(); 
} 
+0

고마워, 아주 깨끗한 솔루션. –