具体的な例が見つからないため、質問を投稿しています。どんな助けもありがたい。2つの大きな汎用リストの比較
私は2つの大きな汎用リストを持っていますが、どちらも300Kアイテムを超えています。
私は最初のリストをループして情報を引き出し、新しいリストの新しいアイテムを即座に生成しますが、2番目のリスト内で検索し、3つの一致基準に基づいて値を返しますあなたが想像することができるように、リストに追加するには、この300k * 300k回を行うことは時間がかかります。
これをより効率的に行う方法はありますか?
マイコード:
var reportList = new List<StocksHeldInCustody>();
foreach (var correctDepotHolding in correctDepotHoldings)
{
var reportLine = new StocksHeldInCustody();
reportLine.ClientNo = correctDepotHolding.ClientNo;
reportLine.Value = correctDepotHolding.ValueOfStock;
reportLine.Depot = correctDepotHolding.Depot;
reportLine.SEDOL = correctDepotHolding.StockCode;
reportLine.Units = correctDepotHolding.QuantityHeld;
reportLine.Custodian = "Unknown";
reportLine.StockName = correctDepotHolding.StockR1.Trim() + " " + correctDepotHolding.StockR2.Trim();
//Get custodian info
foreach (var ccHolding in ccHoldList)
{
if (correctDepotHolding.ClientNo != ccHolding.ClientNo) continue;
if (correctDepotHolding.Depot != ccHolding.Depot) continue;
if (correctDepotHolding.StockCode != ccHolding.StockCode) continue;
if (correctDepotHolding.QuantityHeld != ccHolding.QuantityHeld) continue;
reportLine.Custodian = ccHolding.Custodian;
break;
}
reportList.Add(reportLine);
}
がオブジェクトで一緒にすべてのVARSのハッシュを作成し、これらのみをチェックし、それが高速で実行する必要があります – EaterOfCode
データのソースは何ですか?まともなデータベースであれば、この方が良いかもしれません。 –
linqで外部結合を実行する方法の詳細について一般的な回答を更新しました – Arkiliknam