// name - имя инф. элемента
 // listIE - список сущ. инф. элементов
 private Element CreateIE(string name, SortedList allIE)
 {
     Element ie = null;
     if (!allIE.Contains(name))
     {
         ie = new Element(name);
         allIE.Add(name, ie);
     }
     else ie = (Element)allIE[name];
     return ie;
 }
 private void CandidateTest(Element ie, int index, SortedList subject, SortedList candidate)
 {
     if (subject.Contains(ie.Name)) return;
     if (!candidate.Contains(ie.Name))
     {
         // Если ie еще нет в списке кандидатов
         IE_Index ie_index = new IE_Index(ie);
         ie_index.Index.Add(index, 0);
         candidate.Add(ie.Name, ie_index);
     }
     else
     {
         // Если ie уже существует в списке кандидатов
         IE_Index ie_index = ((IE_Index)candidate[ie.Name]);
         // Проверяем не было ли ie с таким же инексом 
         // (т.е. не встречали ли мы его в данном индексе потока)
         if (!ie_index.Index.Contains(index))
             ie_index.Index.Add(index, 0);
     }
 }
 public IE_Index(Element ie)
 {
     IE = ie;
 }
 public IE_Count(Element ie, int count)
 {
     IE = ie;
     Count = count;
 }
 public InOut(Element inIE_rq, Element outIE_rq)
 {
     inIE = inIE_rq;
     outIE = outIE_rq;
 }
 public IE_Value(Element ie, double val)
 {
     IE = ie;
     Value = val;
 }