我正在做一些字節[]比較。我想有一個擴展方法「等於」2字節數組之間
我試圖==但這就像基地的Equals,其中:
byte[] a = {1,2,3};
byte[] b = {1,2,3};
bool equals = a == b; //false
equals = a.Equals(b); //false
我嘗試添加一個擴展方法,但由於過載基站類等於採取相同的參數,它進入基本的方法,而不是擴展,有無論如何,我可以使用一個Equals擴展(不改變它的名稱...)或(甚至更好)使用==運算符?
這裏是我實際上是比較:
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;
}
無可挑剔的時機!我今天早上想要做同樣的事情,你和Skeet在Q/A那裏:-) – 2009-06-29 13:38:13
很高興聽到...... – Shimmy 2009-07-01 00:14:35
Linq已經有一個名爲`SequenceEqual`的內置方法,它完全符合你的描述。 – Juliet 2010-06-23 22:54:57