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
- RenameRuleObjectDialog.cs
- ManagedWndProcTracker.cs
- SqlTransaction.cs
- RoleManagerModule.cs
- SqlError.cs
- WindowsSolidBrush.cs
- ObjectTokenCategory.cs
- XamlStream.cs
- ProcessModule.cs
- WindowsNonControl.cs
- CompoundFileDeflateTransform.cs
- ObjectParameterCollection.cs
- versioninfo.cs
- CssTextWriter.cs
- KeyFrames.cs
- CollectionDataContractAttribute.cs
- DataGridViewAdvancedBorderStyle.cs
- Pair.cs
- XmlChildEnumerator.cs
- TypeInitializationException.cs
- StoragePropertyMapping.cs
- CannotUnloadAppDomainException.cs
- DataGridViewColumnCollection.cs
- XdrBuilder.cs
- SuspendDesigner.cs
- RequestQueryProcessor.cs
- HttpApplicationFactory.cs
- _UncName.cs
- UInt64.cs
- EmptyReadOnlyDictionaryInternal.cs
- CopyCodeAction.cs
- WebEventCodes.cs
- ItemChangedEventArgs.cs
- AttributeCollection.cs
- WebPartCancelEventArgs.cs
- CodeTryCatchFinallyStatement.cs
- Operators.cs
- NumericUpDownAccelerationCollection.cs
- InstanceNameConverter.cs
- ExtensionWindowResizeGrip.cs
- SqlRowUpdatingEvent.cs
- NumberFunctions.cs
- XmlAnyElementAttribute.cs
- GZipDecoder.cs
- BaseParaClient.cs
- EntryIndex.cs
- SqlConnectionPoolGroupProviderInfo.cs
- NetCodeGroup.cs
- DetailsViewDeleteEventArgs.cs
- LineProperties.cs
- SelectionItemProviderWrapper.cs
- ScrollChrome.cs
- FastPropertyAccessor.cs
- FlowPosition.cs
- ArrayList.cs
- xmlglyphRunInfo.cs
- UserPreferenceChangedEventArgs.cs
- DesignerForm.cs
- DBCSCodePageEncoding.cs
- JumpList.cs
- TreeNodeMouseHoverEvent.cs
- LicFileLicenseProvider.cs
- GroupBox.cs
- HostProtectionException.cs
- SecurityManager.cs
- BufferedOutputAsyncStream.cs
- AssemblyBuilder.cs
- GifBitmapEncoder.cs
- TemplateBuilder.cs
- ElementHostAutomationPeer.cs
- OleDbInfoMessageEvent.cs
- SqlDataSourceStatusEventArgs.cs
- CompiledRegexRunnerFactory.cs
- _CacheStreams.cs
- PresentationTraceSources.cs
- UIElement3D.cs
- SecurityContext.cs
- WebBrowserNavigatedEventHandler.cs
- DocumentViewerAutomationPeer.cs
- AuthenticationModulesSection.cs
- SimpleExpression.cs
- DataGridViewCellStyleBuilderDialog.cs
- SelectionRangeConverter.cs
- ReferentialConstraint.cs
- XNodeValidator.cs
- SafeArrayTypeMismatchException.cs
- PopupEventArgs.cs
- PolicyManager.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- IIS7WorkerRequest.cs
- FileLevelControlBuilderAttribute.cs
- XmlIlVisitor.cs
- Rect3D.cs
- HtmlElementEventArgs.cs
- Aes.cs
- NamespaceEmitter.cs
- WaitForChangedResult.cs
- CodeTypeReferenceExpression.cs
- ExpressionLink.cs
- SizeAnimationClockResource.cs