私は 2 つの DataTables を持っています: 携帯電話番号を含む TableNumber と、すべて 6 桁の長さの可能なすべての携帯電話コードの組み合わせを含む TableCode です。最初の 6 桁が TableCode の数字のみを持つリストを作成したいので、最初の 6 桁が TableCode にない数字は考慮されません。foreach、.Contains()、IndexOf() でこれを試しましたが、数値のレコードが 100,000 を超え、すべての項目をループするには時間がかかりすぎるため、すべてが遅くなります。別のテーブルと比較します。ネストされた foreach ループを 2 つ使用します。テーブルコードから30,000人のメンバーに対して30億回の検索が行われ、結果が得られるまでに5分かかるため、2つのforeachで何か愚かなことをしています。私のコードは次のようなものです:
foreach(string codetable in TableCode)
{
foreach(string grouptable in TableNumber)
{
if(grouptable.IndexOf(codetable)!=-1)
{
//work here
}
}
}
ここでは、テーブルの番号行を数字のみを含むリストに追加したので、ここでリストを検索していますが、DataTables を再度比較しようとすると時間がかかりすぎます。