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が1つだけ割り当てられていることを確認するメソッドを作成する必要があります。たとえば、CodeNum4002の行にはLineNum1のみが割り当てられ、CodeNum4005の行にはLineNum3のみが割り当てられます。

LineNumを複数のCodeNumに関連付けることはできますが、CodeNumを複数のLineNum値に関連付けることはできません。

上記の例では、CodeNum4009の3行目に5ではなくLineNum6が含まれているというエラーがあります。ここで、エラー行ID1023526のようなエラーメッセージをポップアップ表示します。

実際のテーブル/データには多くの行が含まれており、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 に答える