List1: {"123456", "432978", "321675", …} // containing 100,000 members
List2: {"7674543897", "1234568897", "8899776644",…} // containing 500,000 members
最初の 6 桁が List1 メンバーからのものである List2 のすべてのアイテムを抽出したいので、最初の 6 桁が List1 の最初のアイテムからのものであるため、ここでは文字列「1234568897」が有効です。これを行う最速の方法は何ですか?
foreach(string id in List1)
{
string result = List2.FirstOrDefault(x => x.Contains(id));
if(result!=null)
{
//some works here
}
}
これは 1000 未満のグループでは機能しますが、List2 項目が大きくなると時間がかかりすぎます