Je fais des comparaisons d'octets [].Je veux avoir une méthode d'extension "Equals" entre les tableaux de 2 octets
J'ai essayé == mais cela est tout comme la base Equals, qui:
byte[] a = {1,2,3};
byte[] b = {1,2,3};
bool equals = a == b; //false
equals = a.Equals(b); //false
J'ai essayé d'ajouter une méthode d'extension, mais étant donné que la classe de base surchargée Equals prend les mêmes arguments, il va la méthode de base plutôt à l'extension, y at-il de toute façon je peux utiliser une extension Equals (sans changer son nom ...) ou (encore mieux) utiliser == opérateur?
Voici ce que j'ai fait au comparateur:
public static bool ContentEquals(this byte[] array, byte[] bytes)
{
if (array == null || bytes == null) throw new ArgumentNullException();
if(array.Length != bytes.Length) return false;
for (int i = 0; i < array.Length; i++)
if (array[i] != bytes[i]) return false;
return true;
}
Un timing impeccable! Je voulais faire exactement la même chose ce matin et vous et Skeet étiez là avec le Q/A :-) –
heureux d'entendre ... – Shimmy
Linq a déjà une méthode intégrée appelée «SequenceEqual» qui fait exactement ce que vous décrivez . – Juliet