/// <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++; } }
/// <summary> /// 移除行 /// </summary> /// <param name="name"></param> public void RemoveRow(string name) { int index = RowNames.IndexOf(name); RemoveRow(index); }