数据表数据检查难题

时间:2012-11-21 22:11:31

标签: c# datatable

我正在使用一些Visual Studio C#代码。

我有一个包含一些行和数据的数据表。数据如下:

Id      CodeNum     LineNum
1023503     4001        1
1023504     4001        1
1023505     4001        1
1023506     4002        1
1023507     4002        1
1023508     4002        1
1023509     4002        1
1023510     4003        2
1023511     4003        2
1023512     4003        2
1023513     4003        2
1023514     4004        2
1023515     4004        2
1023516     4005        3
1023517     4005        3
1023518     4006        3
1023519     4006        3
1023520     4006        3
1023521     4007        4
1023522     4007        4
1023523     4008        4
1023524     4009        5
1023525     4009        5
1023526     4009        6   x
1023527     4010        6
1023528     4011        6

我需要编写一个方法来对所有表行进行错误检查,并确保任何CodeNum只分配了一个LineNum。 例如,具有CodeNum 4002的行仅分配了LineNum 1,&比如CodeNum 4005的行只分配了LineNum 3。

可以将LineNum与多个CodeNum相关联,但不能将CodeNum与多个LineNum值相关联。

上面的例子中有一个错误,其中CodeNum 4009的第3行有LineNum 6而不是5,这里我想要弹出一条错误消息,说错误行id 1023526。

实际表/数据包含许多行,CodeNum值和LineNum值没有模式,(所有值都是整数)。

我希望这是有道理的。 我正在努力想出一种快速简洁的方法来编写这种错误检查方法。

1 个答案:

答案 0 :(得分:0)

您可以转换为查找,然后搜索包含>的分组1:

using System.Linq;

var badRecords = collection.ToLookup(x => x.CodeNum).Where(y => y.Count() > 1);