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
- RichTextBox.cs
- MsmqTransportSecurity.cs
- DatasetMethodGenerator.cs
- GroupDescription.cs
- PKCS1MaskGenerationMethod.cs
- ButtonChrome.cs
- PolicyLevel.cs
- BmpBitmapDecoder.cs
- ListenerElementsCollection.cs
- ServiceContractGenerationContext.cs
- CreateRefExpr.cs
- RequestQueryParser.cs
- ScrollableControl.cs
- RemoveStoryboard.cs
- BoundColumn.cs
- MethodBuilder.cs
- ColorPalette.cs
- Sql8ConformanceChecker.cs
- DbSetClause.cs
- AuthenticationService.cs
- mansign.cs
- WorkItem.cs
- COM2TypeInfoProcessor.cs
- AssemblyHash.cs
- SecurityUtils.cs
- ValueCollectionParameterReader.cs
- ApplicationServiceHelper.cs
- CustomError.cs
- IntegrationExceptionEventArgs.cs
- HMACSHA512.cs
- ResXBuildProvider.cs
- CodeExporter.cs
- QueryGeneratorBase.cs
- MDIClient.cs
- XmlAtomErrorReader.cs
- ToolBarButtonClickEvent.cs
- SQLInt16.cs
- BamlRecordHelper.cs
- CustomAttributeFormatException.cs
- HtmlInputText.cs
- AppModelKnownContentFactory.cs
- AdornerDecorator.cs
- ToolboxBitmapAttribute.cs
- DirectoryNotFoundException.cs
- WindowsAuthenticationEventArgs.cs
- OdbcPermission.cs
- ExitEventArgs.cs
- GeometryConverter.cs
- CodeRegionDirective.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- Knowncolors.cs
- WindowPattern.cs
- OptimalBreakSession.cs
- MemberProjectedSlot.cs
- EntityUtil.cs
- ArraySortHelper.cs
- CAGDesigner.cs
- DecoderExceptionFallback.cs
- EventSinkHelperWriter.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TypefaceCollection.cs
- SHA256CryptoServiceProvider.cs
- SqlCacheDependencySection.cs
- SQLMoneyStorage.cs
- FilteredSchemaElementLookUpTable.cs
- xsdvalidator.cs
- XmlTypeAttribute.cs
- Line.cs
- ScriptReferenceEventArgs.cs
- InternalDispatchObject.cs
- AccessDataSourceView.cs
- ReferenceTypeElement.cs
- PriorityQueue.cs
- _Connection.cs
- TextComposition.cs
- StreamUpdate.cs
- ProbeMatches11.cs
- WebEvents.cs
- HtmlTernaryTree.cs
- TypeElement.cs
- WindowsRegion.cs
- Wildcard.cs
- Vector3D.cs
- DeobfuscatingStream.cs
- SchemaDeclBase.cs
- OracleSqlParser.cs
- AppDomainFactory.cs
- FileInfo.cs
- ToolStripGrip.cs
- DependentList.cs
- ProcessActivityTreeOptions.cs
- NonClientArea.cs
- PopupEventArgs.cs
- BreakRecordTable.cs
- RequestUriProcessor.cs
- CategoryNameCollection.cs
- Stacktrace.cs
- TextDecorationCollectionConverter.cs
- Model3DCollection.cs
- ScriptingSectionGroup.cs