Beispiel #1
0
        public IEnumerable <object[]> GetAllByKey(int column, object key)
        {
            int i;

            for (i = 0; i < cnoms.Length; i++)
            {
                if (cnoms[i] == column)
                {
                    break;
                }
            }
            if (i == cnoms.Length)
            {
                throw new Exception("Err: 938948");
            }

            var index = allindexes[i];

            if (index is IndexDynamic <int, IndexKeyImmutable <int> > )
            {
                IndexDynamic <int, IndexKeyImmutable <int> > ind = (IndexDynamic <int, IndexKeyImmutable <int> >)index;
                return(ind.GetAllByKey((int)key).Select(ent => ((object[])ent.Get())[1]).Cast <object[]>());
            }
            else if (index is IndexDynamic <string, IndexHalfkeyImmutable <string> > )
            {
                IndexDynamic <string, IndexHalfkeyImmutable <string> > ind = (IndexDynamic <string, IndexHalfkeyImmutable <string> >)index;
                return(ind.GetAllByKey((string)key).Select(ent => ((object[])ent.Get())[1]).Cast <object[]>());
            }
            return(Enumerable.Empty <object[]>());
        }
Beispiel #2
0
        // Проверяет и, если надо, добавляет. Выдает код.
        //private int next_code;
        public int Add(string s)
        {
            var q = s_index.GetAllByKey(s)
                    //.Where() // проверить на deleted?
                    .Select(ent => ent.Get())
                    .FirstOrDefault();
            int code;

            if (q == null)
            {
                //code = next_code;
                //table.AppendValue(new object[] { next_code, s });
                //next_code++;
                code = (int)table.Count();
                table.AppendValue(new object[] { code, s });
            }
            else
            {
                code = (int)((object[])((object[])q)[1])[0];
            }
            return(code);
        }
Beispiel #3
0
        public string GetStringByCode(int cod)
        {
            // Старый вариант, Но другого нет...
            var qu = offsets.GetAllByKey(cod)
                     //.Where() // какие-то проверки?
                     .Select(ent => ent.Get())
                     .FirstOrDefault();

            if (qu == null)
            {
                return(null);
            }
            return((string)((object[])((object[])qu)[1])[1]);
        }