Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IDataContractSurrogate.cs
- Encoder.cs
- DataGridViewToolTip.cs
- WizardPanelChangingEventArgs.cs
- FormsAuthenticationCredentials.cs
- FtpWebRequest.cs
- EnumBuilder.cs
- DictionarySectionHandler.cs
- ColorAnimationBase.cs
- DataMemberAttribute.cs
- FixedNode.cs
- MergeFilterQuery.cs
- TableProviderWrapper.cs
- StringBuilder.cs
- CellParagraph.cs
- SHA384.cs
- GridSplitter.cs
- CopyNamespacesAction.cs
- ButtonBaseAdapter.cs
- ChildrenQuery.cs
- ProfileProvider.cs
- IteratorFilter.cs
- SafeCloseHandleCritical.cs
- GenericEnumerator.cs
- InvalidProgramException.cs
- ThreadStaticAttribute.cs
- BrowserCapabilitiesFactoryBase.cs
- SQLChars.cs
- CalendarDesigner.cs
- FileClassifier.cs
- ValidatorUtils.cs
- RpcCryptoContext.cs
- ProxyManager.cs
- DesignTableCollection.cs
- ToolStripDesigner.cs
- ISAPIRuntime.cs
- LineSegment.cs
- RichTextBoxConstants.cs
- RequestQueryParser.cs
- TextTreeInsertUndoUnit.cs
- RegistryExceptionHelper.cs
- IconHelper.cs
- PositiveTimeSpanValidatorAttribute.cs
- DrawListViewItemEventArgs.cs
- SQLCharsStorage.cs
- AssemblySettingAttributes.cs
- RemotingConfiguration.cs
- DocumentPageHost.cs
- SkipStoryboardToFill.cs
- CheckedPointers.cs
- FilteredDataSetHelper.cs
- TargetPerspective.cs
- EntityDataSourceUtil.cs
- ConcurrentDictionary.cs
- EventLog.cs
- PtsPage.cs
- MessageFilterTable.cs
- JsonFormatReaderGenerator.cs
- XmlBindingWorker.cs
- ResourceType.cs
- DataMember.cs
- Axis.cs
- TextReader.cs
- PtsContext.cs
- ScriptingProfileServiceSection.cs
- Helper.cs
- IPPacketInformation.cs
- BindStream.cs
- Package.cs
- PersonalizationProviderCollection.cs
- UpdatableWrapper.cs
- SerializerWriterEventHandlers.cs
- WrappedReader.cs
- ErrorFormatterPage.cs
- FirstMatchCodeGroup.cs
- FacetDescription.cs
- GenericNameHandler.cs
- RegexParser.cs
- PtsPage.cs
- MimeMultiPart.cs
- WindowsListViewItemCheckBox.cs
- MarshalByValueComponent.cs
- FieldNameLookup.cs
- ObjRef.cs
- XmlObjectSerializerContext.cs
- OrderedDictionary.cs
- RectAnimationClockResource.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- CompilerCollection.cs
- ContractsBCL.cs
- TextRenderer.cs
- ToolStripLabel.cs
- BaseParagraph.cs
- RecognitionResult.cs
- DataGridViewRowCollection.cs
- ThreadStateException.cs
- TCPListener.cs
- DbConnectionInternal.cs
- NavigationPropertyEmitter.cs
- KerberosSecurityTokenProvider.cs