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
- NonClientArea.cs
- DataBoundLiteralControl.cs
- CopyOfAction.cs
- FastPropertyAccessor.cs
- GridViewRowCollection.cs
- httpserverutility.cs
- FacetDescriptionElement.cs
- TransformGroup.cs
- Hash.cs
- ResourceAttributes.cs
- WebPartTransformerAttribute.cs
- Rule.cs
- ConstructorBuilder.cs
- HwndTarget.cs
- GridViewCellAutomationPeer.cs
- DateTimeConstantAttribute.cs
- DataGridViewColumnCollection.cs
- ResourceReader.cs
- LayoutExceptionEventArgs.cs
- WsdlHelpGeneratorElement.cs
- EntityDataSourceDesigner.cs
- _OSSOCK.cs
- MenuItemAutomationPeer.cs
- EmptyStringExpandableObjectConverter.cs
- BackStopAuthenticationModule.cs
- SQLByte.cs
- HotSpotCollection.cs
- PrintPageEvent.cs
- Serializer.cs
- OleDbConnection.cs
- FilteredReadOnlyMetadataCollection.cs
- connectionpool.cs
- DataGridViewRowStateChangedEventArgs.cs
- UnsafeNativeMethods.cs
- Transform.cs
- PackagePartCollection.cs
- XmlStreamStore.cs
- BamlTreeNode.cs
- DataServiceEntityAttribute.cs
- DependencyObjectType.cs
- HitTestDrawingContextWalker.cs
- RegexNode.cs
- ScaleTransform3D.cs
- EntitySetBase.cs
- StrokeCollection.cs
- SymbolPair.cs
- SqlDataSourceFilteringEventArgs.cs
- Content.cs
- BinaryFormatterWriter.cs
- ReadOnlyHierarchicalDataSource.cs
- TargetInvocationException.cs
- HierarchicalDataBoundControl.cs
- SuppressMessageAttribute.cs
- AllMembershipCondition.cs
- CallbackWrapper.cs
- DiscoveryMessageSequence11.cs
- PreviewPrintController.cs
- HttpRequestBase.cs
- RemotingConfiguration.cs
- EpmCustomContentWriterNodeData.cs
- CommandField.cs
- MobileCategoryAttribute.cs
- WebControl.cs
- Attribute.cs
- ErrorHandler.cs
- AxHostDesigner.cs
- HttpFormatExtensions.cs
- CodeNamespaceImport.cs
- LinearQuaternionKeyFrame.cs
- TableItemPattern.cs
- Enum.cs
- Variant.cs
- DataListItemCollection.cs
- Screen.cs
- RadioButtonStandardAdapter.cs
- ReflectPropertyDescriptor.cs
- safemediahandle.cs
- PeerNameRecord.cs
- AppSettings.cs
- TypeLoadException.cs
- counter.cs
- TextTreeUndo.cs
- GeneralTransform2DTo3DTo2D.cs
- HttpApplicationFactory.cs
- HttpPostedFile.cs
- FixUp.cs
- RuleSettings.cs
- ClientUtils.cs
- AsymmetricSignatureDeformatter.cs
- HttpListenerException.cs
- RuntimeIdentifierPropertyAttribute.cs
- PriorityRange.cs
- SchemaCollectionPreprocessor.cs
- DataBoundLiteralControl.cs
- TreeViewItemAutomationPeer.cs
- Utils.cs
- ContractReference.cs
- MessageBox.cs
- HashAlgorithm.cs
- ListDictionaryInternal.cs