根据字符串列表()排列列

本文关键字:排列 列表 字符串 | 更新日期: 2023-09-27 17:56:20

我在列表(字符串)中有一个列名列表,它们与我的datagridview中的当前column.headers匹配。

我希望列的显示顺序与它们在列表(字符串)中的顺序相同。

例如,我按此顺序排列列

1 | 2 | 3 | 4 | 5

如果我在我的列表中订购它们以按此顺序显示......

3 | 2 | 1 | 4 | 5

我希望他们按照与列表相同的顺序排列列。

这将如何实现?

我想出了这个,但它似乎改变了它,然后又改回来了。

   For l_index As Integer = 0 To visiblecolumns.Count - 1
        Dim l_text As String = visiblecolumns(l_index) 'String for the current index
        Dim num As Integer = dgvResults.Columns.[Single](Function(c) c.Header.ToString() = l_text).DisplayIndex
        dgvResults.Columns(num).DisplayIndex = l_index
    Next

根据字符串列表()排列列

我已经找到了解决方案

    For l_index As Integer = 0 To visiblecolumns.Count - 1
        Dim l_text As String = visiblecolumns(l_index) 'String for the current index
        Dim num As Integer = dgvResults.Columns.ToList().FindIndex(Function(c) c.Header = l_text) 'index of the column, based on header name
        dgvResults.Columns(num).DisplayIndex = l_index 'change displayindex of column based on list index
    Next