vb.net 对于将一行与其他每一行进行比较的每个循环
vb.net for each loop that compares a row to every other row
我正在尝试根据与其他行的比较来格式化一些 datagridview 行。
这是我目前的代码。
For Each row As DataGridViewRow In DaisyServicesForm.DataGridView1.Rows
If row.Cells("UnitCost").Value = row.Cells("UnitCost").Value And (row.Cells("FromDate").Value <= row.Cells("ToDate").Value And row.Cells("ToDate").Value >= row.Cells("FromDate").Value) Then
row.DefaultCellStyle.ForeColor = Color.Blue
End If
Next
但我不想 VB 将行与它们自己进行比较,我希望它取第一行然后与其他每一行进行比较...然后取第二行并将其与其他行。
如果它在 SQL 中,它将看起来像:
i.unitcost = i2.unitcost
and ((i.FromDate <= i2.ToDate)
and (i.ToDate >= i2.FromDate))
希望有道理,非常感谢任何帮助。
如果您希望迭代每个项目(行)并将其自身与列表(网格)中的每个其他项目进行比较,则需要一个内部 For Loop
。
For Each rowOuter As DataGridViewRow In DaisyServicesForm.DataGridView1.Rows
For Each rowInner As DataGridViewRow In DaisyServicesForm.DataGridView1.Rows
If rowOuter.Cells("UnitCost").Value = rowInner.Cells("UnitCost").Value And
(rowOuter.Cells("FromDate").Value <= rowInner.Cells("ToDate").Value And rowOuter.Cells("ToDate").Value >= rowInner.Cells("FromDate").Value) Then
rowOuter.DefaultCellStyle.ForeColor = Color.Blue
End If
Next
Next
- 第一个外行将自己与所有行进行比较。
- 下一个外行将自己与所有行进行比较。
- ...
- 最后一行将自己与所有行进行比较。
您可能需要检查我那里的 if 语句,但这个想法应该可行。此外,您需要添加一个检查,以查看该行是否正在检查自身。
我正在尝试根据与其他行的比较来格式化一些 datagridview 行。
这是我目前的代码。
For Each row As DataGridViewRow In DaisyServicesForm.DataGridView1.Rows
If row.Cells("UnitCost").Value = row.Cells("UnitCost").Value And (row.Cells("FromDate").Value <= row.Cells("ToDate").Value And row.Cells("ToDate").Value >= row.Cells("FromDate").Value) Then
row.DefaultCellStyle.ForeColor = Color.Blue
End If
Next
但我不想 VB 将行与它们自己进行比较,我希望它取第一行然后与其他每一行进行比较...然后取第二行并将其与其他行。
如果它在 SQL 中,它将看起来像:
i.unitcost = i2.unitcost
and ((i.FromDate <= i2.ToDate)
and (i.ToDate >= i2.FromDate))
希望有道理,非常感谢任何帮助。
如果您希望迭代每个项目(行)并将其自身与列表(网格)中的每个其他项目进行比较,则需要一个内部 For Loop
。
For Each rowOuter As DataGridViewRow In DaisyServicesForm.DataGridView1.Rows
For Each rowInner As DataGridViewRow In DaisyServicesForm.DataGridView1.Rows
If rowOuter.Cells("UnitCost").Value = rowInner.Cells("UnitCost").Value And
(rowOuter.Cells("FromDate").Value <= rowInner.Cells("ToDate").Value And rowOuter.Cells("ToDate").Value >= rowInner.Cells("FromDate").Value) Then
rowOuter.DefaultCellStyle.ForeColor = Color.Blue
End If
Next
Next
- 第一个外行将自己与所有行进行比较。
- 下一个外行将自己与所有行进行比较。
- ...
- 最后一行将自己与所有行进行比较。
您可能需要检查我那里的 if 语句,但这个想法应该可行。此外,您需要添加一个检查,以查看该行是否正在检查自身。