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
- BasicExpandProvider.cs
- SecuritySessionClientSettings.cs
- PublisherMembershipCondition.cs
- HostingEnvironment.cs
- MemberRelationshipService.cs
- ConfigsHelper.cs
- Merger.cs
- DirectoryObjectSecurity.cs
- HostedTcpTransportManager.cs
- WebPartVerbCollection.cs
- PrintDocument.cs
- HtmlInputFile.cs
- ProviderException.cs
- ConfigurationSectionCollection.cs
- GPPOINTF.cs
- NamespaceEmitter.cs
- tibetanshape.cs
- DeferredElementTreeState.cs
- TraceXPathNavigator.cs
- Point3DCollection.cs
- RemotingSurrogateSelector.cs
- SizeAnimationBase.cs
- Int64.cs
- Encoder.cs
- ContainerVisual.cs
- StringFunctions.cs
- BaseCollection.cs
- SignatureDescription.cs
- QilValidationVisitor.cs
- XmlNamespaceMapping.cs
- Token.cs
- _HeaderInfo.cs
- Repeater.cs
- ChameleonKey.cs
- VirtualPath.cs
- base64Transforms.cs
- AnnotationResource.cs
- MatrixTransform.cs
- MouseButton.cs
- CriticalFinalizerObject.cs
- UInt64Storage.cs
- HttpSocketManager.cs
- ColorConvertedBitmapExtension.cs
- DoubleConverter.cs
- _DigestClient.cs
- BindingContext.cs
- RedirectionProxy.cs
- CorruptingExceptionCommon.cs
- UdpChannelListener.cs
- FastPropertyAccessor.cs
- SQLBytes.cs
- StickyNoteAnnotations.cs
- DynamicScriptObject.cs
- ClickablePoint.cs
- SQLDateTime.cs
- TypeConvertions.cs
- TypefaceMetricsCache.cs
- VarRefManager.cs
- MailMessageEventArgs.cs
- OleDbParameterCollection.cs
- BitmapMetadata.cs
- GeneratedContractType.cs
- ConstraintEnumerator.cs
- ZipIOLocalFileHeader.cs
- AuthenticodeSignatureInformation.cs
- XsltLibrary.cs
- ListItemCollection.cs
- CharEntityEncoderFallback.cs
- ConfigXmlText.cs
- DataGridColumnCollection.cs
- StorageSetMapping.cs
- GeneralTransformGroup.cs
- NopReturnReader.cs
- ConnectionStringsExpressionBuilder.cs
- ComponentChangedEvent.cs
- DataKeyCollection.cs
- BrowserDefinition.cs
- ListViewGroupConverter.cs
- SqlStatistics.cs
- InternalSafeNativeMethods.cs
- ContentElement.cs
- TiffBitmapEncoder.cs
- XmlElementCollection.cs
- OdbcErrorCollection.cs
- SqlCachedBuffer.cs
- ThumbButtonInfo.cs
- BypassElementCollection.cs
- CounterCreationDataCollection.cs
- SQLBinaryStorage.cs
- DataPointer.cs
- DataGridViewCellCollection.cs
- DbProviderFactory.cs
- KnownTypesProvider.cs
- BooleanStorage.cs
- SystemException.cs
- ClientOptions.cs
- WebBrowserPermission.cs
- CounterCreationDataCollection.cs
- CollectionBuilder.cs
- MbpInfo.cs