将两列与表中的数据进行比较的最佳方法是什么?

时间:2016-07-14 03:59:04

标签: c#

我希望比较数据表中的数据,按照1个规则自动比较列。

在此图片中,我将按对列Ax_yBx_y进行比较。

A0_0 vs B0_0

A1_1 vs B1_1

...........

我尝试过代码:

foreach(DataRow r in dt.Rows)
{
    if (r["A0_0"] == r["B0_0"])
    {
       // do something 
    }
}

但这失败了,我想循环所有行并进行比较。但我有大约50列,做这本手册并不是一个好主意。

注意:在这张图片中我绘制了样本列。在真实的数据库中,它会像:

A0_0 B0_0 A0_1 B0_1 A1_0 B1_0 A1_1 B1_1 A2_0 B2_0 A2_1 B2_1

1 个答案:

答案 0 :(得分:1)

在行的每次迭代中循环遍历列。如下所示:

library(tidyr)

       # gather non-ID columns to long form
df %>% gather(var, val, -id1:-id2) %>% 
  # split former column names into variable name and time variables
  separate(var, c('var', 'time')) %>% 
  # spread back to wide form
  spread(var, val) %>%
  head()

##   id1       id2 time        v1        v2        v3         v4        v5         v6 v7        v8
## 1   1 0.2655087    a 0.2059746 0.8209463 0.3390729 0.23962942        NA 0.57487220 NA        NA
## 2   1 0.2655087    b 0.9347052 0.4776196        NA 0.65472393        NA 0.68278808 NA        NA
## 3   1 0.2655087    c 0.4820801 0.9128759 0.4346595 0.97617069 0.9918386 0.61464497 NA        NA
## 4   1 0.2655087    d        NA        NA        NA         NA        NA         NA NA 0.2847905
## 5   2 0.3721239    a 0.1765568 0.6470602 0.8394404 0.05893438        NA 0.07706438 NA        NA
## 6   2 0.3721239    b 0.2121425 0.8612095        NA 0.35319727        NA 0.60154122 NA        NA

此处,Inner循环将迭代每行的列,并将foreach (DataRow r in myTableData.Rows) { for (int i = 1; i < myTableData.Columns.Count - 1; i+=2) { if (r[i] == r[i + 1]) { // do something; } } } 列数据与ith进行比较。即。i+1th时它会比较i=1。自r["A0_0"] and r["B0_0"]

以来,我们跳过了0th