Tôi không thể tìm thấy ví dụ cụ thể về điều này, vì vậy, hãy đăng câu hỏi. Bất kỳ trợ giúp nào được đánh giá cao.So sánh hai danh sách chung chung lớn
Tôi có hai danh sách chung chung lớn, cả hai đều có hơn 300 nghìn mục.
Tôi đang vòng qua danh sách đầu tiên để lấy lại thông tin và tạo mục mới cho danh sách mới, nhưng tôi cần phải tìm kiếm trong danh sách thứ hai và trả lại giá trị dựa trên BA tiêu chí phù hợp để thêm vào danh sách, tuy nhiên như bạn có thể tưởng tượng, làm 300k * 300k lần này là dành thời gian.
Có cách nào để tôi có thể thực hiện việc này hiệu quả hơn không?
Mã của tôi:
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);
}
tạo một hash của tất cả các vars với nhau trong đối tượng và chỉ kiểm tra này, nó phải chạy nhanh sau đó – EaterOfCode
Nguồn dữ liệu là gì? Nếu nó là một cơ sở dữ liệu phong nha, điều này có thể được thực hiện tốt hơn bên đó. –
Cập nhật câu trả lời chung của tôi với các chi tiết về cách thực hiện phép nối ngoài trong linq – Arkiliknam