コード例 #1
0
ファイル: Deque`1.cs プロジェクト: uniblab/Icod.Collections
 private Deque(Dequelette left, IDeque <Dequelette> middle, Dequelette right, System.Int64 count) : this()
 {
     if (count <= 0)
     {
         throw new System.ArgumentOutOfRangeException("count", "count must be positive.");
     }
     else if (null == right)
     {
         throw new System.ArgumentNullException("right");
     }
     else if (null == left)
     {
         throw new System.ArgumentNullException("left");
     }
     myLeft       = left;
     myMiddle     = middle ?? Deque <Dequelette> .Empty;
     myRight      = right;
     myLongCount  = count;
     myShortCount = (System.Int32)System.Math.Min((System.Int64)System.Int32.MaxValue, myLongCount);
     unchecked {
         myHashCode += left.GetHashCode();
         myHashCode += myMiddle.GetHashCode();
         myHashCode += right.GetHashCode();
     }
 }
コード例 #2
0
ファイル: DequeGeneric.cs プロジェクト: TEnd321/Deque
 public bool MoveNext()
 {
     index++;
     if (hash != deque.GetHashCode())
     {
         throw new InvalidOperationException();
     }
     if (index < 0 || index >= deque.Count)
     {
         return(false);
     }
     return(true);
 }
コード例 #3
0
ファイル: DequeGeneric.cs プロジェクト: TEnd321/Deque
 public DequeEnumerator(IDeque <T> input)
 {
     deque = input;
     hash  = deque.GetHashCode();
 }