Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Compiler / Set.cs / 1305376 / Set.cs
/* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ using System.Collections; using System.Collections.Generic; // Note: can't move to Utils because name conflicts with System.Linq.Set namespace System.Linq.Expressions { ////// A simple hashset, built on Dictionary{K, V} /// internal sealed class Set: ICollection { private readonly Dictionary _data; internal Set() { _data = new Dictionary (); } internal Set(IEqualityComparer comparer) { _data = new Dictionary (comparer); } internal Set(IList list) { _data = new Dictionary (list.Count); foreach (T t in list) { Add(t); } } internal Set(IEnumerable list) { _data = new Dictionary (); foreach (T t in list) { Add(t); } } internal Set(int capacity) { _data = new Dictionary (capacity); } public void Add(T item) { _data[item] = null; } public void Clear() { _data.Clear(); } public bool Contains(T item) { return _data.ContainsKey(item); } public void CopyTo(T[] array, int arrayIndex) { _data.Keys.CopyTo(array, arrayIndex); } public int Count { get { return _data.Count; } } public bool IsReadOnly { get { return false; } } public bool Remove(T item) { return _data.Remove(item); } public IEnumerator GetEnumerator() { return _data.Keys.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return _data.Keys.GetEnumerator(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ using System.Collections; using System.Collections.Generic; // Note: can't move to Utils because name conflicts with System.Linq.Set namespace System.Linq.Expressions { /// /// A simple hashset, built on Dictionary{K, V} /// internal sealed class Set: ICollection { private readonly Dictionary _data; internal Set() { _data = new Dictionary (); } internal Set(IEqualityComparer comparer) { _data = new Dictionary (comparer); } internal Set(IList list) { _data = new Dictionary (list.Count); foreach (T t in list) { Add(t); } } internal Set(IEnumerable list) { _data = new Dictionary (); foreach (T t in list) { Add(t); } } internal Set(int capacity) { _data = new Dictionary (capacity); } public void Add(T item) { _data[item] = null; } public void Clear() { _data.Clear(); } public bool Contains(T item) { return _data.ContainsKey(item); } public void CopyTo(T[] array, int arrayIndex) { _data.Keys.CopyTo(array, arrayIndex); } public int Count { get { return _data.Count; } } public bool IsReadOnly { get { return false; } } public bool Remove(T item) { return _data.Remove(item); } public IEnumerator GetEnumerator() { return _data.Keys.GetEnumerator(); } System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() { return _data.Keys.GetEnumerator(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OpenFileDialog.cs
- BinaryParser.cs
- UserValidatedEventArgs.cs
- Boolean.cs
- XmlNamespaceManager.cs
- WebPartsPersonalization.cs
- MetricEntry.cs
- MergeFailedEvent.cs
- AsyncResult.cs
- ScopedKnownTypes.cs
- HttpClientChannel.cs
- Int16Animation.cs
- IpcManager.cs
- BindingsCollection.cs
- BaseDataBoundControl.cs
- IpcChannelHelper.cs
- QueryStringParameter.cs
- AlphaSortedEnumConverter.cs
- TaskScheduler.cs
- WebPartConnectionsCancelVerb.cs
- EntityDataSourceReferenceGroup.cs
- InvalidPipelineStoreException.cs
- MouseActionConverter.cs
- DebugTracing.cs
- Rectangle.cs
- FixedSchema.cs
- ToolStripItemClickedEventArgs.cs
- CharConverter.cs
- NameValueConfigurationElement.cs
- ZoneLinkButton.cs
- EastAsianLunisolarCalendar.cs
- CryptoConfig.cs
- TimerElapsedEvenArgs.cs
- TextureBrush.cs
- VisualBasicHelper.cs
- ServiceNameCollection.cs
- FontWeights.cs
- TableRow.cs
- BitmapEffectCollection.cs
- DataSourceHelper.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- XmlSchemaImporter.cs
- RawContentTypeMapper.cs
- WorkflowRuntimeSection.cs
- _Rfc2616CacheValidators.cs
- DataServiceClientException.cs
- InstanceHandleReference.cs
- BordersPage.cs
- Byte.cs
- MenuItemStyleCollection.cs
- CalendarAutoFormat.cs
- SqlFacetAttribute.cs
- BufferedOutputStream.cs
- XmlCharacterData.cs
- MenuItemCollection.cs
- SingleAnimationBase.cs
- TextTreeFixupNode.cs
- Scripts.cs
- TypeConverterMarkupExtension.cs
- AnnotationObservableCollection.cs
- TextEndOfSegment.cs
- DataGridViewCellLinkedList.cs
- JavaScriptSerializer.cs
- ObjectIDGenerator.cs
- CompositeFontInfo.cs
- ListViewItemMouseHoverEvent.cs
- PropertyChangedEventArgs.cs
- FixedSOMContainer.cs
- Ops.cs
- UnsafeNativeMethods.cs
- _BasicClient.cs
- ArcSegment.cs
- TableHeaderCell.cs
- BaseTypeViewSchema.cs
- BitmapEffectInputData.cs
- PartitionResolver.cs
- DataObject.cs
- ContractsBCL.cs
- ProcessingInstructionAction.cs
- ObjectViewListener.cs
- CreateUserWizard.cs
- Lasso.cs
- SecurityHeaderLayout.cs
- TreeNodeMouseHoverEvent.cs
- ParallelDesigner.xaml.cs
- ConditionalExpression.cs
- TextCompositionEventArgs.cs
- BufferedReadStream.cs
- MenuDesigner.cs
- UIElementCollection.cs
- UIElementCollection.cs
- WebConfigurationManager.cs
- CompressedStack.cs
- MetadataPropertyvalue.cs
- InputScopeNameConverter.cs
- Code.cs
- RequestCache.cs
- CodeAccessSecurityEngine.cs
- PipelineDeploymentState.cs
- UInt64Storage.cs