我有给定的 listitem 类:
class Vector
{
public int Column { get; set; }
public int Row { get; set; }
public int TableID { get; set; }
public Vector(int column, int row, int tableID)
{
TableID = tableID;
Row = row;
Column = column;
}
}
后来我有一个这些项目的类型列表,我想知道给定的向量(列、行、表)是否已经添加到这个列表中。当然简单的解决方案:
var items = new List<Vector>();
items.Add(new Vector(1, 2, 3));
items.Add(new Vector(5, 6, 7));
for (int i = 0; i < 1000; i++)
{
if (items.Any(e => e.Column == 1 && e.Row == 2 && e.TableID == 3))
{
// do something
}
}
是的,它正在工作,但是......我担心随着列表中越来越多的项目它会呈指数级增长,因为你必须枚举所有项目才能找到匹配的项目。
最后我的问题是:
你能推荐其他数据结构来允许“快速包含”吗?我的意思是至少线性算法。任何都可以,我只需要存储 3 个相关的 int 并稍后检查容器。