1

我正在寻求一些 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,这里我希望弹出一条错误消息,说明类似于 Error row id 1023526。

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

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

4

1 回答 1

0

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

using System.Linq;

var badRecords = collection.ToLookup(x => x.CodeNum).Where(y => y.Count() > 1);
于 2012-11-21T22:17:28.503 回答