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
- PtsHost.cs
- itemelement.cs
- QuaternionRotation3D.cs
- Latin1Encoding.cs
- DataListItemEventArgs.cs
- ConnectionPoint.cs
- StateManagedCollection.cs
- MultiView.cs
- AuthorizationSection.cs
- PostBackTrigger.cs
- CodeBinaryOperatorExpression.cs
- DataServiceClientException.cs
- DataGridViewRowPrePaintEventArgs.cs
- BindingExpressionUncommonField.cs
- ReadOnlyHierarchicalDataSource.cs
- XmlWrappingReader.cs
- XPathSingletonIterator.cs
- XmlValueConverter.cs
- XmlWriterTraceListener.cs
- PersistenceTypeAttribute.cs
- PageAsyncTaskManager.cs
- SqlTrackingWorkflowInstance.cs
- ExceptionHelpers.cs
- ClassicBorderDecorator.cs
- arc.cs
- SQLDateTimeStorage.cs
- CellParagraph.cs
- PageAdapter.cs
- PngBitmapDecoder.cs
- DesignerActionVerbItem.cs
- ContextMenuStrip.cs
- StylusButtonEventArgs.cs
- followingsibling.cs
- XmlKeywords.cs
- ServiceOperation.cs
- SelectedDatesCollection.cs
- DataGridGeneralPage.cs
- ScriptManager.cs
- AudioDeviceOut.cs
- MsmqInputChannel.cs
- DecoderBestFitFallback.cs
- SystemUdpStatistics.cs
- PositiveTimeSpanValidatorAttribute.cs
- CrossAppDomainChannel.cs
- XmlCharacterData.cs
- LongValidator.cs
- NameValuePermission.cs
- UrlAuthorizationModule.cs
- ElementHost.cs
- CustomAttributeFormatException.cs
- StatusBar.cs
- GuidelineCollection.cs
- StreamWriter.cs
- HeaderCollection.cs
- NodeFunctions.cs
- ToolStripOverflowButton.cs
- SoundPlayer.cs
- COM2FontConverter.cs
- ForceCopyBuildProvider.cs
- WebPartDisplayModeEventArgs.cs
- HttpCacheVary.cs
- LocalizeDesigner.cs
- StringUtil.cs
- CapabilitiesAssignment.cs
- SafeThreadHandle.cs
- StrokeCollectionConverter.cs
- PointAnimation.cs
- CompilerWrapper.cs
- MemoryMappedFile.cs
- HttpClientChannel.cs
- XmlNamedNodeMap.cs
- FormsAuthenticationUser.cs
- Expressions.cs
- DispatchWrapper.cs
- DataGridViewBand.cs
- UserNameSecurityTokenAuthenticator.cs
- DrawingAttributes.cs
- MenuDesigner.cs
- EventLogPropertySelector.cs
- SurrogateSelector.cs
- JsonGlobals.cs
- ImageListStreamer.cs
- RawStylusInputCustomData.cs
- DoubleAnimationClockResource.cs
- XmlSubtreeReader.cs
- SR.Designer.cs
- CharacterString.cs
- PageEventArgs.cs
- DoubleAnimationUsingKeyFrames.cs
- SystemIPv6InterfaceProperties.cs
- Validator.cs
- SimpleHandlerFactory.cs
- RowType.cs
- VirtualPath.cs
- IconConverter.cs
- EventMappingSettings.cs
- Debug.cs
- Thickness.cs
- EventSchemaTraceListener.cs
- MemberRelationshipService.cs