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
- FormViewInsertedEventArgs.cs
- ResXBuildProvider.cs
- ReadContentAsBinaryHelper.cs
- ObfuscationAttribute.cs
- lengthconverter.cs
- DataGridItemAutomationPeer.cs
- SiteMapPathDesigner.cs
- AtomServiceDocumentSerializer.cs
- TreeView.cs
- WebConfigurationHost.cs
- DivideByZeroException.cs
- ReferenceService.cs
- __TransparentProxy.cs
- ComponentManagerBroker.cs
- ListViewDeleteEventArgs.cs
- AnimationStorage.cs
- SimpleBitVector32.cs
- NetSectionGroup.cs
- DocumentReference.cs
- Oci.cs
- PathStreamGeometryContext.cs
- SettingsSection.cs
- ElasticEase.cs
- assertwrapper.cs
- datacache.cs
- WindowsScrollBarBits.cs
- BaseTemplateParser.cs
- SingleAnimation.cs
- Base64Encoder.cs
- HostSecurityManager.cs
- ConditionalAttribute.cs
- httpserverutility.cs
- XslException.cs
- RecordBuilder.cs
- DataGridViewRowsAddedEventArgs.cs
- CryptoHandle.cs
- FragmentQueryProcessor.cs
- SmtpNetworkElement.cs
- PeerNearMe.cs
- MonikerSyntaxException.cs
- AccessedThroughPropertyAttribute.cs
- SchemaDeclBase.cs
- HybridObjectCache.cs
- Rss20FeedFormatter.cs
- CodeCatchClause.cs
- DataGridViewSelectedColumnCollection.cs
- StyleTypedPropertyAttribute.cs
- WebPartVerb.cs
- StrokeDescriptor.cs
- GridViewSelectEventArgs.cs
- XmlHierarchyData.cs
- EncoderNLS.cs
- MembershipUser.cs
- StickyNoteHelper.cs
- UpDownBaseDesigner.cs
- UnknownBitmapEncoder.cs
- SystemIcmpV6Statistics.cs
- HtmlWindowCollection.cs
- CommonGetThemePartSize.cs
- OuterGlowBitmapEffect.cs
- XmlAttribute.cs
- EvidenceBase.cs
- HwndSubclass.cs
- ItemCollection.cs
- XamlTypeMapperSchemaContext.cs
- ServiceChannelFactory.cs
- VSWCFServiceContractGenerator.cs
- DataColumnCollection.cs
- selecteditemcollection.cs
- XmlSchemaAttribute.cs
- OuterGlowBitmapEffect.cs
- SqlDesignerDataSourceView.cs
- ProtocolsSection.cs
- DrawingContextDrawingContextWalker.cs
- ActionMessageFilterTable.cs
- ConsoleEntryPoint.cs
- Menu.cs
- PenThread.cs
- SplitContainer.cs
- DebugView.cs
- IItemProperties.cs
- NamespaceExpr.cs
- SafeRightsManagementPubHandle.cs
- DataComponentGenerator.cs
- PrintDialogDesigner.cs
- IPAddressCollection.cs
- ping.cs
- TabletCollection.cs
- UnsafeNativeMethods.cs
- CurrentChangingEventArgs.cs
- AddInIpcChannel.cs
- Emitter.cs
- QilFactory.cs
- PropertyKey.cs
- StorageInfo.cs
- CrossSiteScriptingValidation.cs
- updatecommandorderer.cs
- Executor.cs
- PersonalizationEntry.cs
- WindowsScroll.cs