public void GenerateIndexTable <T1>(string key1) where T1 : IComparable { StringIndexHashSet.Clear(); IndexTable = new Seq <Index>(Seq <Index> .Default, rowCount - 1); int indexKey1 = titleMap[key1]; string keyStr1 = ""; for (int row = 1; row < rowCount; row++) { keyStr1 = GetCell(row, indexKey1); IndexTable[row - 1] = new Index() { aimRow = row, keys = new IComparable[1] { CheckType <T1>(keyStr1) } }; if (typeof(T1) == typeof(string) && !StringIndexHashSet.Contains(keyStr1)) { StringIndexHashSet.Add(keyStr1); } } IndexTable.Sort(); IndexKeys = new Seq <string>() { key1 }; }
public Func <T1, T2, T3, string, string> GenerateIndexTable <T1, T2, T3>(string key1, string key2, string key3) where T1 : IComparable where T2 : IComparable where T3 : IComparable { StringIndexHashSet.Clear(); IndexTable = new Seq <Index>(Seq <Index> .Default, rowCount - 1); int indexKey1 = titleMap[key1]; int indexKey2 = titleMap[key2]; int indexKey3 = titleMap[key3]; for (int row = 1; row < rowCount; row++) { IndexTable[row - 1] = new Index() { aimRow = row, keys = new IComparable[3] { CheckType <T1>(GetCell(row, indexKey1)), CheckType <T2>(GetCell(row, indexKey2)), CheckType <T3>(GetCell(row, indexKey3)) } }; } IndexTable.Sort(); IndexKeys = new Seq <string>() { key1, key2, key3 }; return(Query); }