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
- ConfigurationManager.cs
- WindowsSpinner.cs
- FrameworkContentElement.cs
- DbMetaDataFactory.cs
- StylusShape.cs
- X509ImageLogo.cs
- SqlConnectionPoolGroupProviderInfo.cs
- LiteralControl.cs
- ItemsPanelTemplate.cs
- InvocationExpression.cs
- ObjectDataSourceView.cs
- BufferedWebEventProvider.cs
- ZipIOCentralDirectoryFileHeader.cs
- PageHandlerFactory.cs
- TrailingSpaceComparer.cs
- PreservationFileReader.cs
- DataGridViewRowCollection.cs
- FilterInvalidBodyAccessException.cs
- GroupJoinQueryOperator.cs
- LogManagementAsyncResult.cs
- LinkedList.cs
- PropertyTabAttribute.cs
- Logging.cs
- WebConfigurationFileMap.cs
- Point3DAnimationUsingKeyFrames.cs
- QuaternionKeyFrameCollection.cs
- ClientScriptManagerWrapper.cs
- TreeView.cs
- TheQuery.cs
- MatrixUtil.cs
- ClientConfigurationSystem.cs
- RectangleGeometry.cs
- HtmlTableCellCollection.cs
- UnsafeCollabNativeMethods.cs
- TextEndOfParagraph.cs
- GetChildSubtree.cs
- SetIterators.cs
- SqlLiftIndependentRowExpressions.cs
- RegularExpressionValidator.cs
- CompilerGeneratedAttribute.cs
- InnerItemCollectionView.cs
- CatalogZone.cs
- UpdateTracker.cs
- PropagatorResult.cs
- PersianCalendar.cs
- Confirm.cs
- SwitchAttribute.cs
- returneventsaver.cs
- WindowsAuthenticationEventArgs.cs
- WindowCollection.cs
- GPPOINT.cs
- DecimalConverter.cs
- DataViewSettingCollection.cs
- MemberHolder.cs
- WindowsImpersonationContext.cs
- StateManagedCollection.cs
- WorkflowViewStateService.cs
- Sequence.cs
- HttpRequest.cs
- DetailsViewDeletedEventArgs.cs
- XDeferredAxisSource.cs
- DBSchemaTable.cs
- ParagraphResult.cs
- BaseTemplatedMobileComponentEditor.cs
- SecurityUtils.cs
- SchemaUtility.cs
- WebBrowser.cs
- CodeEventReferenceExpression.cs
- HwndAppCommandInputProvider.cs
- GACIdentityPermission.cs
- StoreItemCollection.cs
- DataStreams.cs
- returneventsaver.cs
- IncomingWebResponseContext.cs
- CultureMapper.cs
- MachineKeySection.cs
- DataGridViewLayoutData.cs
- Application.cs
- BridgeDataReader.cs
- DynamicAttribute.cs
- NativeMethodsCLR.cs
- EntityDataSourceContextCreatedEventArgs.cs
- LocalIdKeyIdentifierClause.cs
- UriParserTemplates.cs
- AutomationPatternInfo.cs
- XmlDocumentFragment.cs
- ClientConfigurationHost.cs
- EntityContainerEntitySetDefiningQuery.cs
- SqlErrorCollection.cs
- UpDownBase.cs
- SizeKeyFrameCollection.cs
- OleDbError.cs
- EncryptedKeyHashIdentifierClause.cs
- BinaryMessageFormatter.cs
- IApplicationTrustManager.cs
- NumericExpr.cs
- PartitionedStreamMerger.cs
- ColorConvertedBitmap.cs
- DbUpdateCommandTree.cs
- COM2ColorConverter.cs