#region Using using System; using System.Collections; #endregion namespace Wankuma.Collections { /// /// BinaryArrayComparer の概要の説明です。 /// public class ByteArrayComparer : IComparer { #region public ByteArrayComparer() /// /// コンストラクタ /// public ByteArrayComparer() { } #endregion #region IComparer メンバ #region public int Compare(object x, object y) /// /// byte[] の比較です。 /// /// 比較対象の第 1 オブジェクト。 /// 比較対象の第 2 オブジェクト。 /// より小さい値 x が y より小さい。 /// 0 x と y は等しい。 /// 0 より大きい値 x が y より大きい。 public int Compare(object x, object y) { return Compare((byte[])x, (byte[])y); } #endregion #region public int Compare(byte[] x, byte[] y) /// /// byte[] の比較です。 /// /// 比較対象の第 1 オブジェクト。 /// 比較対象の第 2 オブジェクト。 /// より小さい値 x が y より小さい。 /// 0 x と y は等しい。 /// 0 より大きい値 x が y より大きい。 public int Compare(byte[] x, byte[] y) { if ( x.Length == 0 && y.Length == 0 ) { return 0; } else if ( x.Length < y.Length ) { return -1; } else if ( x.Length > y.Length ) { return 1; } for ( int LoopCounter = 0; LoopCounter < x.Length; LoopCounter++ ) { if ( x[LoopCounter] < y[LoopCounter] ) { return -1; } else if ( x[LoopCounter] > y[LoopCounter] ) { return 1; } } return 0; } #endregion #endregion } }