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
- SoapInteropTypes.cs
- StringAttributeCollection.cs
- Knowncolors.cs
- CompiledRegexRunnerFactory.cs
- Application.cs
- ConfigurationSchemaErrors.cs
- RemoteWebConfigurationHostServer.cs
- TemplateField.cs
- DataGridToolTip.cs
- SqlUDTStorage.cs
- SynchronousReceiveBehavior.cs
- XmlIlTypeHelper.cs
- XamlReaderHelper.cs
- EntityKey.cs
- HwndSource.cs
- ScriptReference.cs
- Rotation3D.cs
- SqlUDTStorage.cs
- QueryOptionExpression.cs
- MultiBindingExpression.cs
- DesignerDataTableBase.cs
- DummyDataSource.cs
- DayRenderEvent.cs
- LambdaCompiler.cs
- UdpDiscoveryEndpointElement.cs
- SettingsSavedEventArgs.cs
- Deserializer.cs
- webeventbuffer.cs
- Converter.cs
- QueryStringHandler.cs
- ConfigXmlCDataSection.cs
- URLMembershipCondition.cs
- TextModifier.cs
- WebUtil.cs
- ContractComponent.cs
- DropTarget.cs
- ItemContainerGenerator.cs
- SmtpClient.cs
- Guid.cs
- BrowserCapabilitiesCodeGenerator.cs
- CalendarButtonAutomationPeer.cs
- SQLGuid.cs
- DesignSurfaceManager.cs
- RSAPKCS1SignatureDeformatter.cs
- CreatingCookieEventArgs.cs
- CompilationRelaxations.cs
- OdbcInfoMessageEvent.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- FormsAuthenticationCredentials.cs
- Style.cs
- MappedMetaModel.cs
- ITextView.cs
- DataGridViewColumn.cs
- ObjectViewListener.cs
- RemotingException.cs
- Blend.cs
- PrePrepareMethodAttribute.cs
- ReadWriteObjectLock.cs
- OnOperation.cs
- TabletDeviceInfo.cs
- BitmapFrameEncode.cs
- SqlNotificationRequest.cs
- RankException.cs
- ObjectListCommand.cs
- GC.cs
- MemoryMappedViewAccessor.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- unsafenativemethodstextservices.cs
- XmlSerializer.cs
- SapiAttributeParser.cs
- ServiceChannelProxy.cs
- GregorianCalendarHelper.cs
- CertificateReferenceElement.cs
- DecimalAnimationUsingKeyFrames.cs
- PersonalizationProviderCollection.cs
- AsyncPostBackErrorEventArgs.cs
- AnnouncementInnerClientCD1.cs
- MethodExpression.cs
- RedirectionProxy.cs
- ListParaClient.cs
- ToolStripContainer.cs
- ConfigXmlWhitespace.cs
- RegexCaptureCollection.cs
- LinqMaximalSubtreeNominator.cs
- CollectionChange.cs
- RoleExceptions.cs
- ListViewInsertedEventArgs.cs
- QueryOperator.cs
- SortedDictionary.cs
- IntegrationExceptionEventArgs.cs
- CompiledIdentityConstraint.cs
- TextSelectionHelper.cs
- ImageListUtils.cs
- XPathSingletonIterator.cs
- OutputWindow.cs
- SqlUserDefinedAggregateAttribute.cs
- AppPool.cs
- ListViewAutomationPeer.cs
- EntityDescriptor.cs
- IChannel.cs