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); }
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); }
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); }
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); }
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(); } }
public KeyPile(KeyPile <kTyp, iTyp> cloneFrom) { _name = cloneFrom._name; val = cloneFrom.val.Clone(); kim = new KeyInxMap <kTyp>(cloneFrom.kim); }
public KeyPile( ) { this.uniqueKeys = true; this.val = new Pile <iTyp>(); this.kim = new KeyInxMap <kTyp>(uniqueKeys); }