我有一个包含列标题的排序列表,如何重新排列我的 datagridview 以使其与我的排序列表的顺序相同?
我试过下面的代码,但这并不总是有效,有些列没有正确排序。感谢您对此提供的任何帮助。
sortedColumnNames.Sort();
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
col.DisplayIndex = sortedColumnNames.IndexOf(col.HeaderText);
}
已排序的列名: 雅典 克里特 科孚岛 凯法利尼亚岛 米科诺斯岛 罗兹 圣托里尼 斯基亚索斯 桑特花
最佳答案
我无法判断您的问题是否是 SortedColumnNames
未正确排序(实际上不是),或者列的分配顺序是否与列表中显示的顺序不同。
如果是后者,可以想象可能是因为您在遍历集合时修改了集合中项目的顺序。尽管我在运行的任何测试中都没有看到这种情况发生。
作为一般规则,我不会弄乱我正在迭代的集合的成员或顺序。我以这种方式实现列排序:
void SortDataGridViewColumns(DataGridView dgv)
{
var list = from DataGridViewColumn c in dgv.Columns
orderby c.HeaderText
select c;
int i = 0;
foreach (DataGridViewColumn c in list)
{
c.DisplayIndex = i++;
}
}
关于c# - 如何按字母顺序对数据网格中的列标题进行排序? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/348419/