我一直在分析我的代码,发现它System.Array.IndexOf
分配了相当多的内存。我一直在试图找出这是怎么发生的。
public struct LRItem
{
public ProductionRule Rule { get; } // ProductionRule is a class
public int Position { get; }
}
// ...
public List<LRItem> Items { get; } = new List<LRItem>();
// ...
public bool Add(LRItem item)
{
if (Items.Contains(item)) return false;
Items.Add(item);
return true;
}
我假设IndexOf被调用是Items.Contains因为我认为Items.Add没有任何业务检查索引。我尝试查看参考源和.NET Core 源,但无济于事。这是 VS 分析器中的错误吗?这个函数实际上是在分配内存吗?我可以以某种方式优化我的代码吗?
尚方宝剑之说
函数式编程
相关分类