快速查找List
|
我有两个通用列表。假设它们是
List< A >
和List< B >
。
类A
具有一个属性,类型为List< B >
。此属性包含B
类型的对象,这些对象被对象A
的其他一些属性过滤。
所以:
class A{
public int Something1;
public int Something2;
public List<B> Something3;
}
class B{
public int Anything1;
public int Anything2;
}
我想将所有对象B
作为列表添加到对象A
(添加到名为Something3
的属性中),这里假设对象A.Something1 == B.Anything1
。
我的问题是:将List<B>
项目添加到List<A>
项目中,最有效的方法是什么?请注意,两个列表中都可以有成千上万的对象。
(VS2010; C#; .Net4)
没有找到相关结果
已邀请:
4 个回复
厢界山攀
\放在
属性上,并放入字典中。然后,您可以遍历
\并有效地挑选pick4ѭ\的列表:
拈吉勉犬姆
选择:O(1)(表示复杂度) 加:O(1)[或O(n)] 基于哈希表
选择:O(log n) 加:O(log n) 基于二叉搜索树
选择:O(log n)[或O(n)] 添加在) 基于排序的集合(可调整大小的数组) 请注意,如果数据数量相对较少,则选择“ 21”即可。 (根据您的数据大小,以上顺序将重新排列。) 同时,您需要考虑C#中
类型的容量。
类型是可调整大小的,因此,如果缺少大小,则将Collection重新创建为比以前更大的大小,然后再次插入元素。这一点告诉您,如果您已经知道Collection的大小,则应该在Collection构造函数中设置容量。
授巨
寇剩
中的列表。使用组联接并将每个组中的项目添加到相应的“ 2”。