AoMBrgEditor.PssgFile.RemoveAttributeInfo C# (CSharp) Метод

RemoveAttributeInfo() публичный Метод

public RemoveAttributeInfo ( int id ) : void
id int
Результат void
        public void RemoveAttributeInfo(int id)
        {
            // Shift all succeeding attributeInfos and change their id
            //
            for (int i = id - 1; i < attributeInfo.Length - 1; i++)
            {
                attributeInfo[i] = attributeInfo[i + 1];
                attributeInfo[i].id--;
                //attributeInfo[i].id = i + 1;
            }
            Array.Resize(ref attributeInfo, attributeInfo.Length - 1);
            // Fix the NodeInfos
            foreach (PssgNodeInfo nInfo in nodeInfo)
            {
                List<int> keys = new List<int>(nInfo.attributeInfo.Keys);
                //keys.Sort();
                if (nInfo.attributeInfo.ContainsKey(id) == true)
                {
                    nInfo.attributeInfo.Remove(id);
                    for (int i = id + 1; nInfo.attributeInfo.ContainsKey(i); i++)
                    {
                        PssgAttributeInfo aInfo = attributeInfo[i - 2];
                        nInfo.attributeInfo.Remove(i);
                        nInfo.attributeInfo.Add(i - 1, aInfo);
                    }
                }
                else
                {
                    for (int i = 0; i < keys.Count; i++)
                    {
                        if (keys[i] > id)
                        {
                            PssgAttributeInfo aInfo = attributeInfo[keys[i] - 2];
                            nInfo.attributeInfo.Remove(keys[i]);
                            nInfo.attributeInfo.Add(keys[i] - 1, aInfo);
                        }
                    }
                }
            }
            // Edit CNode to fix CAttr.id
            if (rootNode != null)
            {
                rootNode.RemoveAttributeInfo(id);
            }
        }