比较两个列表以找出差异

时间:2015-11-16 14:21:19

标签: .net vb.net

我有两个网格控件是同一个表,但由于它是审计跟踪历史记录,因此列的某些单元格值与原始值不同。这搞乱了我的同步滚动。

所以我要做的是将列宽设置为等于两个网格之间的较大列值。这就是我到目前为止的做法:

 Private Sub GridView1_RowCellStyle(sender As Object, e As RowCellStyleEventArgs) Handles gvwOriginalAuditValues.RowCellStyle

    Dim originalColumnWidth As New List(Of Integer)()
    Dim modifiedColumnWidth As New List(Of Integer)()

    If gvwOriginalAuditValues.RowCount > 0 And gwvModifiedAuditValues.RowCount > 0 Then
        If gvwOriginalAuditValues.GetRowCellDisplayText(e.RowHandle, e.Column) <> gwvModifiedAuditValues.GetRowCellDisplayText(0, e.Column.FieldName) Then
            e.Appearance.BackColor = Color.Yellow
        End If

        For Each col As DevExpress.XtraGrid.Columns.GridColumn In gvwOriginalAuditValues.Columns
            originalColumnWidth.Add(col.Width)
        Next
        For Each col2 As DevExpress.XtraGrid.Columns.GridColumn In gwvModifiedAuditValues.Columns
            modifiedColumnWidth.Add(col2.Width)
        Next
    End If

End Sub

现在我遇到麻烦的下一步是比较两个列表(originalColumnWidth和modifiedColumnWidth)。它们将具有完全相同的列数,顺序相同。那么我可以比较两个列表的任何想法,当两者之间存在差异时,将列宽更改为更大的值,它们是否相等?

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

For i As Integer = 0 To originalColumnWidth.Count
   if (originalColumnWidth(i) > modifiedColumnWidth(i)) Then
      modifiedColumnWidth(i) = originalColumnWidth(i)
   ElseIf (originalColumnWidth(i) < modifiedColumnWidth(i)) Then
      originalColumnWidth(i) = modifiedColumnWidth(i)
   End if
Next