Esempio n. 1
0
            public void GetRecordsFromVirtual(ListStruct source)//брать записи из источника в качестве списка
            {
                this.counter = source.counter;
                TabStud Record = source.ListRecord;//обьявили и присвоили запись шоб ходить по списку не изменяя головы

                this.Records = new TabStud[source.counter];
                for (int i = 0; i < source.counter - 1; i++)
                {

                    this.Records[i] = Record;
                    Record = Record.Next;
                }
                this.Records[source.counter - 1] = Record;
            }
Esempio n. 2
0
        void WriteList(ListStruct list)
        {
            bool b = !TypeMarkerUtil.IsFinal(list.ElementType);

            WriteVInt(list.Type);
            foreach (var m in list.MemberValues)
            {
                WriteValue(m);
            }
            writer.Write((byte)list.ElementType);
            WriteVInt((uint)list.Values.Length);
            foreach (var m in list.Values)
            {
                WriteValue(m, b);
            }
        }
Esempio n. 3
0
 public ListStruct SetRecordsToVirtual()// если  в последствии используемый алгоритм изменит данные, то 
 {//выполниим эту функцию которая вернет в место назначения список..
  //ток через ретурнс ибо свойства нельзя передавать как пареметр через реф!!
     var dest = new ListStruct(DGV);
     // /*this.Records[0].Next =*/ this.Records[this.counter - 1].Next = null;
     TabStud Record = this.Records[0];//записали какбэ голову
     dest.ListRecord = Record;//и отдали в дест
     dest.LastOf = this.Records[this.counter - 1];
     dest.LastOf.Next = null;
     dest.counter = this.counter;
     for (int i = 0; i < (this.counter - 2); i++)
     {
         this.Records[i].Next = this.Records[i + 1];
         Record = this.Records[i];
         Record = Record.Next;
     }
     this.Records[this.counter - 2].Next = this.Records[this.counter - 1];
     return dest;
 }
Esempio n. 4
0
        ListStruct ConvertList(IEnumerable obj)
        {
            Type          t        = obj.GetType();
            List <object> elements = obj.Cast <object>().ToList();
            ListStruct    list     = new ListStruct();

            list.Type        = GetTypeRef(t);
            list.ElementType = GetTypeMarker(obj);
            list.Values      = new ValueStruct[elements.Count];
            for (int i = 0; i < elements.Count; i++)
            {
                list.Values[i] = Convert(elements[i]);
            }


            TypeStruct ts = types.GetValue(list.Type);

            list.MemberValues = new ValueStruct[ts.Members.Length];
            int slot = 0;

            foreach (var member in ts.Members)
            {
                string name = strings.GetValue(member);
                var    p    = t.GetProperty(name);
                if (p != null)
                {
                    list.MemberValues[slot] = Convert(p.GetValue(obj));
                }
                else
                {
                    list.MemberValues[slot] = Convert(t.GetField(name).GetValue(obj));
                }
                slot++;
            }

            return(list);
        }