Ejemplo n.º 1
0
        /// <summary>
        /// 按照新的名称,排列组织数组
        /// </summary>
        /// <param name="newRowNames"></param>
        /// <param name="defaultNewVal"></param>
        public void ArrangeRows(List <string> newRowNames, double defaultNewVal = 0)
        {
            //首先,在老矩阵中删除新矩阵没有的行或列
            var rowNamesTobeRemoved = Geo.Utils.ListUtil.GetExcept <string>(RowNames, newRowNames);

            RemoveRow(rowNamesTobeRemoved);

            int irow = 0;

            foreach (var name in newRowNames)
            {
                if (RowNames.Contains(name))//若包含
                {
                    var index = (RowNames.IndexOf(name));
                    if (index != irow)          //但非同一行
                    {
                        ChangeRow(irow, index); //交换之
                    }
                }
                else
                {
                    InsertRow(irow, name, defaultNewVal);
                }
                irow++;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 移除行
        /// </summary>
        /// <param name="name"></param>
        public void RemoveRow(string name)
        {
            int index = RowNames.IndexOf(name);

            RemoveRow(index);
        }