Moyen plus rapide pour échanger endianness en C# avec 16 bits de mots

Il y a obtenu d'être plus rapide et de meilleure façon de swap d'octets de 16 bits de mots, puis ce.:

public static void Swap(byte[] data)
{
    for (int i = 0; i < data.Length; i += 2)
    {
        byte b = data[i];
        data[i] = data[i + 1];
        data[i + 1] = b;
    }
}

Quelqu'un a une idée?

Votre solution me semble une bonne sauf que SI VOS DONNÉES EST TOUJOURS ÊTRE IMPAIR-LENGTHED, votre code jeter tableau de lié exception.
Si il est la permutation de 16 bits de mots, ses données n'auront jamais de longueur impaire.
Oui, ce sera une méthode privée et il sera la garantie d'avoir des mots de 16 bits.
Pourquoi cherchez-vous vite et mieux? Est-il une métrique que vous visez?
c'est un O(n) de la solution, en l'absence de nouveau des allocations de mémoire. Puis d'autres déclarant b à l'extérieur de la boucle de sorte qu'il ne sera pas alloué à chaque fois, pourquoi voulez-vous améliorer?

OriginalL'auteur initialZero | 2009-10-23