コード例 #1
0
ファイル: KeyInxMap.cs プロジェクト: GeraldTrost/xxDevPlus
        internal KeyInxMap <kTyp> Clone()
        {
            KeyInxMap <kTyp> ret = new KeyInxMap <kTyp>(strong);

            /*
             * if (_Keys != null) ret._Keys = _Keys.Clone();
             * if (_kAsc != null) ret._kAsc = _kAsc.Clone();
             * if (_kDsc != null) ret._kDsc = _kDsc.Clone();
             */
            if (keyinxS != null)
            {
                ret.keyinxS = new Dictionary <kTyp, int>(); foreach (kTyp key in keyinxS.Keys)
                {
                    ret.keyinxS.Add(key, keyinxS[key]);
                }
            }
            if (inxkeyS != null)
            {
                ret.inxkeyS = new Dictionary <int, kTyp>(); foreach (int inx in inxkeyS.Keys)
                {
                    ret.inxkeyS.Add(inx, inxkeyS[inx]);
                }
            }
            if (keyinxW != null)
            {
                ret.keyinxW = (Hashtable)keyinxW.Clone();
            }
            if (inxkeyW != null)
            {
                ret.inxkeyW = (Hashtable)inxkeyW.Clone();
            }
            return(ret);
        }
コード例 #2
0
ファイル: KeyInxMap.cs プロジェクト: GeraldTrost/xxDevPlus
 public KeyInxMap <kTyp> at(int inx)
 {
     if (inx < 0)
     {
         inx = Len + inx + 1;
     }
     KeyInxMap <kTyp> ret = new KeyInxMap <kTyp>(strong); ret.Add(this[inx]); return(ret);
 }
コード例 #3
0
ファイル: KeyInxMap.cs プロジェクト: GeraldTrost/xxDevPlus
        private static void selfTest()
        {
            selfTested = true;
            KeyInxMap <string> kim = new KeyInxMap <string>(true);

            kim.Add("c"); kim.Add("b"); kim.Add("a");
            ass(kim[1].Equals("c")); ass(kim[2].Equals("b")); ass(kim[3].Equals("a"));
            ass(kim["a"] == 3); ass(kim["b"] == 2); ass(kim["c"] == 1);
            ass(kim[kim.Keys[1]] == 1); ass(kim[kim.Keys[2]] == 2); ass(kim[kim.Keys[3]] == 3);
            ass(kim[kim.kAsc[1]] == 3); ass(kim[kim.kAsc[2]] == 2); ass(kim[kim.kAsc[3]] == 1);
        }
コード例 #4
0
ファイル: KeyInxMap.cs プロジェクト: GeraldTrost/xxDevPlus
        public KeyInxMap <kTyp> after(int inx)
        {
            if (inx < 0)
            {
                inx = Len + inx + 1;
            }
            KeyInxMap <kTyp> ret = new KeyInxMap <kTyp>(strong); for (int i = inx + 1; i <= Len; i++)

            {
                ret.Add(this[i]);
            }
            return(ret);
        }
コード例 #5
0
ファイル: KeyInxMap.cs プロジェクト: GeraldTrost/xxDevPlus
 public KeyInxMap(KeyInxMap <kTyp> cloneFrom)
 {
     init();
     strong = cloneFrom.strong;
     clear();
     if (strong)
     {
         foreach (kTyp key in cloneFrom.keyinxS.Keys)
         {
             keyinxS.Add(key, cloneFrom.keyinxS[key]);
         }
         foreach (int key in cloneFrom.inxkeyS.Keys)
         {
             inxkeyS.Add(key, cloneFrom.inxkeyS[key]);
         }
     }
     else
     {
         foreach (kTyp key in cloneFrom.keyinxW.Keys)
         {
             keyinxW.Add(key, cloneFrom.keyinxW[key]);
         }
         foreach (long key in cloneFrom.inxkeyW.Keys)
         {
             inxkeyW.Add(key, cloneFrom.inxkeyW[key]);
         }
     }
     if (cloneFrom._Keys != null)
     {
         _Keys = cloneFrom._Keys.Clone();
     }
     if (cloneFrom._kAsc != null)
     {
         _kAsc = cloneFrom._kAsc.Clone();
     }
     if (cloneFrom._kDsc != null)
     {
         _kDsc = cloneFrom._kDsc.Clone();
     }
 }
コード例 #6
0
 public KeyPile(KeyPile <kTyp, iTyp> cloneFrom)
 {
     _name = cloneFrom._name; val = cloneFrom.val.Clone(); kim = new KeyInxMap <kTyp>(cloneFrom.kim);
 }
コード例 #7
0
 public KeyPile(                               )
 {
     this.uniqueKeys = true; this.val = new Pile <iTyp>(); this.kim = new KeyInxMap <kTyp>(uniqueKeys);
 }