2013-03-07 2 views

답변

308

HashSet의 경우 이름은 UnionWith입니다.

이것은 HashSet이 작동하는 독특한 방법을 나타 내기위한 것입니다. 컬렉션에있는 임의의 요소 세트를 안전하게 추가 할 수 없기 때문에 일부 요소는 자연적으로 증발 할 수 있습니다.

나는, 그러나 너무 IEnumerable을위한 과부하가 :있다 UnionWith는 "다른 HashSet의 합병"후 그 이름을 소요 생각이 하나의 방법입니다

+5

이럴'HashSet' (와'ISet')은 수학적으로 설정된 용어로 만들어졌습니다. 'UnionWith'는 더 가까운 용어였습니다. 'Except'를 제외하고, 수학적으로 말하면서 '빼기'라는 명칭이 분명히 있어야합니다. –

2

:

public static class Extensions 
{ 
    public static bool AddRange<T>(this HashSet<T> @this, IEnumerable<T> items) 
    { 
     bool allAdded = true; 
     foreach (T item in items) 
     { 
      allAdded &= @this.Add(item); 
     } 
     return allAdded; 
    } 
} 
+0

@quetzalcoatl이 (가) return statement ...을 (를) 놓쳤습니다. – RoadieRich

+0

방금 ​​편집을 보았습니다 :) 그냥'? :'연산자 대신 간단히'added & = @ this.Add (item)'이 충분하고 아마도 더 읽기 쉬울 것입니다. 하지만 그건 물론 화장품 일뿐입니다. – quetzalcoatl

+0

@quetzalcoatl 나는 그것에 관해서 막 물어 보려고했다. 그것은 나에게 너무 이르다. – RoadieRich