#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
}
}