Exemple #1
0
        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
            };
        }
Exemple #2
0
        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);
        }