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
- RefType.cs
- PopOutPanel.cs
- XMLSchema.cs
- WindowsListViewItem.cs
- DrawingContextDrawingContextWalker.cs
- NavigationFailedEventArgs.cs
- ControlsConfig.cs
- DataGridViewComboBoxEditingControl.cs
- ProfileElement.cs
- PlanCompiler.cs
- Certificate.cs
- ChannelServices.cs
- FunctionCommandText.cs
- Transform3D.cs
- SqlErrorCollection.cs
- XmlQueryRuntime.cs
- CustomAttributeSerializer.cs
- CapabilitiesPattern.cs
- TextElementCollectionHelper.cs
- TypeUtils.cs
- DateTimeFormat.cs
- ChannelManager.cs
- RSAOAEPKeyExchangeFormatter.cs
- DBConcurrencyException.cs
- TemplateParser.cs
- SendKeys.cs
- ConfigurationPermission.cs
- SessionIDManager.cs
- DataServiceRequestException.cs
- SamlAttribute.cs
- ClockController.cs
- Matrix.cs
- EDesignUtil.cs
- Model3D.cs
- xmlglyphRunInfo.cs
- ListViewInsertionMark.cs
- CodeAttributeDeclarationCollection.cs
- ServerProtocol.cs
- _ListenerAsyncResult.cs
- XmlSignatureManifest.cs
- User.cs
- DataGridViewColumnCollection.cs
- MultiPropertyDescriptorGridEntry.cs
- SplashScreenNativeMethods.cs
- CompositeFontParser.cs
- SelectingProviderEventArgs.cs
- HttpChannelBindingToken.cs
- Vector3DIndependentAnimationStorage.cs
- GridViewRowPresenter.cs
- IPEndPoint.cs
- OledbConnectionStringbuilder.cs
- TreeNodeStyle.cs
- Rethrow.cs
- CacheOutputQuery.cs
- OleDbConnection.cs
- CaseInsensitiveOrdinalStringComparer.cs
- ZipPackagePart.cs
- ListParagraph.cs
- DbDataSourceEnumerator.cs
- XmlReaderDelegator.cs
- ClientApiGenerator.cs
- ToolTipAutomationPeer.cs
- ServiceContractViewControl.Designer.cs
- CharKeyFrameCollection.cs
- ProxyWebPart.cs
- TableCell.cs
- COM2ColorConverter.cs
- _DomainName.cs
- URI.cs
- NamespaceCollection.cs
- DbConnectionPoolCounters.cs
- Label.cs
- DataAdapter.cs
- DSACryptoServiceProvider.cs
- ProfileManager.cs
- webclient.cs
- ClaimTypes.cs
- NavigationCommands.cs
- ComboBoxItem.cs
- NCryptNative.cs
- SqlIdentifier.cs
- SpecialTypeDataContract.cs
- XamlBrushSerializer.cs
- SplitterPanel.cs
- SHA256CryptoServiceProvider.cs
- ControlBuilder.cs
- LogSwitch.cs
- Polyline.cs
- StringUtil.cs
- MessageRpc.cs
- ExpressionEvaluator.cs
- Int32.cs
- CurrentChangingEventArgs.cs
- ProfilePropertyNameValidator.cs
- FormatterConverter.cs
- DataObjectEventArgs.cs
- DataTemplateSelector.cs
- ConcatQueryOperator.cs
- X509SecurityToken.cs
- KeyGestureValueSerializer.cs