当 SecurityInfoMasterList 有大约 11,000 个项目并且 listClassiNode 有大约 750 个项目时,下面的语句需要大约 6 秒来生成输出。
有没有其他方法可以达到相同的结果但性能更好?
List<SecurityInfo> listSecurityInfo = SecurityInfoMasterList.Where(c =>
listClassiNode.Any(d =>
c.SX == d.Exch && c.Instrument == d.Instrument)).ToList();
我一直在尝试使用 for 循环,但没有看到太大的改进。
更新:
listClassiNode 是一个列表
[Serializable]
public class SecurityInfo
{
public string SecurityID { get; set; }
public int SecurityTypeID { get; set; }
public string Code { get; set; }
public string SecurityName { get; set; }
public int DB { get; set; }
public string ExchangeName { get; set; }
public DateTime FirstDate { get; set; }
public int StatusCode { get; set; }
public long GICS { get; set; }
public string ICB { get; set; }
public string Sector { get; set; }
public string IndustryGroup { get; set; }
public string Industry { get; set; }
public string Instrument { get; set; }
public string TypeDescription { get; set; }
public string SX { get; set; }
public string GUID { get; set; }
}
[Serializable()]
public class ClassificationNode
{
public string Exch { get; set; }
public string Instrument { get; set; }
public string Prefix { get; set; }
public string Name { get; set; }
public string Level { get; set; }
}
艾伦