我正在使用一些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值没有模式,(所有值都是整数)。
我希望这是有道理的。 我正在努力想出一种快速简洁的方法来编写这种错误检查方法。
答案 0 :(得分:0)
您可以转换为查找,然后搜索包含>的分组1:
using System.Linq;
var badRecords = collection.ToLookup(x => x.CodeNum).Where(y => y.Count() > 1);