AI智能
改变未来

C#自动排序和插入行序号(源码)


直接上代码,案例中是项目中的一个model,前端显示使用的是DX的gridcontrol,DataSource为listmodel

/// <summary>/// 新增行/// </summary>/// <param name=\"value\">新增行序号</param>/// <param name=\"neednew\">是否需要初始化行(用于修改序号时操作)</param>private void addrow(int value,bool neednew){if (neednew){Model newmodel = new Model(){FBatchNo = startmodel.FBatchNo,FMName = startmodel.FMName,FMNo = startmodel.FMNo,FPGuID = startmodel.FPGuID,FPurNo = startmodel.FPurNo,FSymbol = startmodel.FSymbol,FMsize = startmodel.FMsize,FIndex = value,};listmodel.Add(newmodel);}var row = listmodel.Where(c => c.FIndex == value).ToList();//查找是否已有该序号if (row.Count > 1){for (int i = 0; i < listmodel.Count; i++){if (listmodel[i].FIndex < row[0].FIndex){ continue; }if (listmodel[i].FSymbol == 2){continue;}else{listmodel[i].FIndex += 1;//序号之后 全都+1}}}InitIndex();}
/// <summary>/// 初始化序列/// </summary>private void InitIndex(){if (listmodel.IsNullOrEmpty()){return;}//判断序列是否正常if (listmodel.Count == listmodel.Select(a => a.FIndex).Max() &&listmodel.Select(a => a.FIndex).Distinct().Count() != listmodel.Count){return;}listmodel = listmodel.OrderBy(a => a.FIndex).ToList();for (int i = 0; i < listmodel.Count; i++){listmodel[i].FIndex = i + 1;//从1开始重新排序}gridView1.RefreshData();}

如有其他思路或者答案,欢迎讨论
我是小赖,一个学习C#的混子。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C#自动排序和插入行序号(源码)