嘲笑例子根据您的意见从右至左排列
Module Module1
Sub Main()
Dim dt1 As New DataTable
dt1.Columns.Add(New DataColumn With {.ColumnName = "FirstName", .DataType = GetType(String)})
dt1.Columns.Add(New DataColumn With {.ColumnName = "MiddleName", .DataType = GetType(String)})
dt1.Columns.Add(New DataColumn With {.ColumnName = "LastName", .DataType = GetType(String)})
dt1.Rows.Add(New Object() {"Karen", "", "Payne"})
dt1.Rows.Add(New Object() {"Kevin", "S", "Gallagher"})
dt1.Rows.Add(New Object() {"Mary", "D", "Jones"})
Dim dt2 As New DataTable
dt2.Columns.Add(New DataColumn With {.ColumnName = "LastName", .DataType = GetType(String)})
dt2.Columns.Add(New DataColumn With {.ColumnName = "FirstName", .DataType = GetType(String)})
dt2.Columns.Add(New DataColumn With {.ColumnName = "MiddleName", .DataType = GetType(String)})
dt2.Rows.Add(New Object() {"Payne", "Karen", ""})
dt2.Rows.Add(New Object() {"Gallagher", "Kevin", "S"})
dt2.Rows.Add(New Object() {"Jones", "Mary", "D"})
Dim reverseList = dt1.Columns _
.Cast(Of DataColumn) _
.Select(
Function(column, index)
Return New With {.Position = index, .Name = column.ColumnName}
End Function) _
.OrderByDescending(Function(item) item.Position) _
.ToList
For Each item In reverseList
If dt2.Columns.Contains(item.Name) Then
dt2.Columns(item.Name).SetOrdinal(item.Position)
End If
Next
End Sub
End Module
我不想在DataGridView中订购它,我需要订购DataTable,因为我不希望与另一个DataTable相比较,我不会轻易比较 –
您好史蒂夫,我会回复一个不同的建议如果你已经指出了新的要求(因为它不是最初的问题),但即使如此,比较顺序位置并不重要,因为你可以使用(不知道你是如何比较,所以这可能无法正常工作,因此更多的细节更好)。 (0).Field(Of String)(“FirstName”))这个概念是通过Dim的结果得到点的。 ,True,False) –
对不起,但你不理解我,因为我的英语不好,看看我想做什么我有数据库中的数据库SQL服务器我有表我在DataTable1中向数据表中购买了数据并显示它在DataGridView1中,然后我将Excel表导入到DataTable2中的VB中,并将其显示在DataGridView2中,以在SQL表中添加数据,但在添加之前,我不会将其与DataTable1进行比较,但DataTable2与DataTable1的列顺序不同,我不想重新排序DataTable2(我知道我可以比较它没有重新排序,但我不会让我的团队很容易) –