Exemple #1
0
 public virtual void AddDataAtBlock(MarkedData data, int block)
 {
     while (blocks.Count <= block)
     {
         blocks.Add(new DataBlock());
     }
     blocks[block].AddMarkedData(data);
 }
Exemple #2
0
 internal virtual void DeleteMarkedData(MarkedData data)
 {
     if (indexMap.ContainsKey(data.GetIndex()))
     {
         this.dataList.Set(indexMap[data.GetIndex()], null);
         this.feList.Set(indexMap[data.GetIndex()], null);
         this.indexMap.Remove(data.GetIndex());
     }
 }
Exemple #3
0
 internal virtual void AddMarkedData(MarkedData data)
 {
     if (!indexMap.ContainsKey(data.GetIndex()))
     {
         indexMap[data.GetIndex()] = indexMap.Count;
         this.dataList.Add(data);
         this.feList.Add(data.GetFe());
     }
 }
Exemple #4
0
        public virtual void AddData(IFeaturable data)
        {
            int        index = indexMap.Count;
            MarkedData md    = new MarkedData(data, index);

            dataList.Add(md);
            this.feList.Add(data);
            indexMap[index] = index;
        }
Exemple #5
0
        public override int[] Sort(IList <MarkedData> datas, string feature)
        {
            int[] r = new int[datas.Count];
            MyDictionary <string, int> set = new MyDictionary <string, int>();

            if (comparator == null)
            {
                comparator = GetComparator(feature);
            }
            if (comparator != null)
            {
                datas.Sort(GetComparator(feature));
            }
            for (int i = 0; i < datas.Count; i++)
            {
                MarkedData data = datas[i];
                if (data != null)
                {
                    IFeaturable fe = data.GetFe();
                    if (fe != null)
                    {
                        object v = fe.GetFeatureValue(feature);
                        if (v != null)
                        {
                            SetIndex(r, i, v, set);
                        }
                        else
                        {
                            r[i] = REMOVE;
                        }
                    }
                    else
                    {
                        r[i] = REMOVE;
                    }
                }
                else
                {
                    r[i] = REMOVE;
                }
            }
            return(r);
        }