我有两个ICollections,我想拿这个工会.目前,我正在做一个foreach循环,但感觉到冗长和可怕.什么是
Java的addAll()的C#等价物?
这个问题的例子:
ICollection<IDictionary<string,string>> result = new HashSet<IDictionary<string,string>>(); // ... ICollection<IDictionary<string,string>> fromSubTree = GetAllTypeWithin(elementName,element); foreach( IDictionary<string,string> dict in fromSubTree ) { // hacky result.Add(dict); } // result is now the union of the two sets
解决方法
您可以使用
Enumerable.Union扩展方法:
result = result.Union(fromSubTree).ToList();
由于结果被声明为ICollection< T>,您将需要ToList()调用来转换所得到的IEnumerable< T>列入列表< T> (其实现ICollection< T>).如果枚举是可以接受的,您可以离开ToList()调用,并获得延迟执行(如果需要).