Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / WinForms / Managed / System / WinForms / DataGridViewIntLinkedList.cs / 1 / DataGridViewIntLinkedList.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Diagnostics; using System.Collections; using System.Windows.Forms; using System.ComponentModel; ////// /// internal class DataGridViewIntLinkedList : IEnumerable { private DataGridViewIntLinkedListElement lastAccessedElement; private DataGridViewIntLinkedListElement headElement; private int count, lastAccessedIndex; ///Represents a linked list of integers ///IEnumerator IEnumerable.GetEnumerator() { return new DataGridViewIntLinkedListEnumerator(this.headElement); } /// public DataGridViewIntLinkedList() { lastAccessedIndex = -1; } /// public DataGridViewIntLinkedList(DataGridViewIntLinkedList source) { Debug.Assert(source != null); int elements = source.Count; for (int element = 0; element < elements; element++) { Add(source[element]); } } /// public int this[int index] { get { Debug.Assert(index >= 0); Debug.Assert(index < this.count); if (this.lastAccessedIndex == -1 || index < this.lastAccessedIndex) { DataGridViewIntLinkedListElement tmp = this.headElement; int tmpIndex = index; while (tmpIndex > 0) { tmp = tmp.Next; tmpIndex--; } this.lastAccessedElement = tmp; this.lastAccessedIndex = index; return tmp.Int; } else { while (this.lastAccessedIndex < index) { this.lastAccessedElement = this.lastAccessedElement.Next; this.lastAccessedIndex++; } return this.lastAccessedElement.Int; } } set { Debug.Assert(index >= 0); if (index != this.lastAccessedIndex) { int currentInt = this[index]; Debug.Assert(index == this.lastAccessedIndex); } this.lastAccessedElement.Int = value; } } /// public int Count { get { return this.count; } } /// public int HeadInt { get { Debug.Assert(this.headElement != null); return this.headElement.Int; } } /// public void Add(int integer) { DataGridViewIntLinkedListElement newHead = new DataGridViewIntLinkedListElement(integer); if (this.headElement != null) { newHead.Next = this.headElement; } this.headElement = newHead; this.count++; this.lastAccessedElement = null; this.lastAccessedIndex = -1; } /// public void Clear() { this.lastAccessedElement = null; this.lastAccessedIndex = -1; this.headElement = null; this.count = 0; } /// public bool Contains(int integer) { int index = 0; DataGridViewIntLinkedListElement tmp = this.headElement; while (tmp != null) { if (tmp.Int == integer) { this.lastAccessedElement = tmp; this.lastAccessedIndex = index; return true; } tmp = tmp.Next; index++; } return false; } /// public int IndexOf(int integer) { if (Contains(integer)) { return this.lastAccessedIndex; } else { return -1; } } /// public bool Remove(int integer) { DataGridViewIntLinkedListElement tmp1 = null, tmp2 = this.headElement; while (tmp2 != null) { if (tmp2.Int == integer) { break; } tmp1 = tmp2; tmp2 = tmp2.Next; } if (tmp2.Int == integer) { DataGridViewIntLinkedListElement tmp3 = tmp2.Next; if (tmp1 == null) { this.headElement = tmp3; } else { tmp1.Next = tmp3; } this.count--; this.lastAccessedElement = null; this.lastAccessedIndex = -1; return true; } return false; } /// public void RemoveAt(int index) { DataGridViewIntLinkedListElement tmp1 = null, tmp2 = this.headElement; while (index > 0) { tmp1 = tmp2; tmp2 = tmp2.Next; index--; } DataGridViewIntLinkedListElement tmp3 = tmp2.Next; if (tmp1 == null) { this.headElement = tmp3; } else { tmp1.Next = tmp3; } this.count--; this.lastAccessedElement = null; this.lastAccessedIndex = -1; } } /// /// /// internal class DataGridViewIntLinkedListEnumerator : IEnumerator { private DataGridViewIntLinkedListElement headElement; private DataGridViewIntLinkedListElement current; private bool reset; ///Represents an emunerator of elements in a ///linked list. public DataGridViewIntLinkedListEnumerator(DataGridViewIntLinkedListElement headElement) { this.headElement = headElement; this.reset = true; } /// object IEnumerator.Current { get { Debug.Assert(this.current != null); // Since this is for internal use only. return this.current.Int; } } /// bool IEnumerator.MoveNext() { if (this.reset) { Debug.Assert(this.current == null); this.current = this.headElement; this.reset = false; } else { Debug.Assert(this.current != null); // Since this is for internal use only. this.current = this.current.Next; } return (this.current != null); } /// void IEnumerator.Reset() { this.reset = true; this.current = null; } } /// /// /// internal class DataGridViewIntLinkedListElement { private int integer; private DataGridViewIntLinkedListElement next; ///Represents an element in a ///linked list. public DataGridViewIntLinkedListElement(int integer) { this.integer = integer; } /// public int Int { get { return this.integer; } set { this.integer = value; } } /// public DataGridViewIntLinkedListElement Next { get { return this.next; } set { this.next = value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Diagnostics; using System.Collections; using System.Windows.Forms; using System.ComponentModel; ////// /// internal class DataGridViewIntLinkedList : IEnumerable { private DataGridViewIntLinkedListElement lastAccessedElement; private DataGridViewIntLinkedListElement headElement; private int count, lastAccessedIndex; ///Represents a linked list of integers ///IEnumerator IEnumerable.GetEnumerator() { return new DataGridViewIntLinkedListEnumerator(this.headElement); } /// public DataGridViewIntLinkedList() { lastAccessedIndex = -1; } /// public DataGridViewIntLinkedList(DataGridViewIntLinkedList source) { Debug.Assert(source != null); int elements = source.Count; for (int element = 0; element < elements; element++) { Add(source[element]); } } /// public int this[int index] { get { Debug.Assert(index >= 0); Debug.Assert(index < this.count); if (this.lastAccessedIndex == -1 || index < this.lastAccessedIndex) { DataGridViewIntLinkedListElement tmp = this.headElement; int tmpIndex = index; while (tmpIndex > 0) { tmp = tmp.Next; tmpIndex--; } this.lastAccessedElement = tmp; this.lastAccessedIndex = index; return tmp.Int; } else { while (this.lastAccessedIndex < index) { this.lastAccessedElement = this.lastAccessedElement.Next; this.lastAccessedIndex++; } return this.lastAccessedElement.Int; } } set { Debug.Assert(index >= 0); if (index != this.lastAccessedIndex) { int currentInt = this[index]; Debug.Assert(index == this.lastAccessedIndex); } this.lastAccessedElement.Int = value; } } /// public int Count { get { return this.count; } } /// public int HeadInt { get { Debug.Assert(this.headElement != null); return this.headElement.Int; } } /// public void Add(int integer) { DataGridViewIntLinkedListElement newHead = new DataGridViewIntLinkedListElement(integer); if (this.headElement != null) { newHead.Next = this.headElement; } this.headElement = newHead; this.count++; this.lastAccessedElement = null; this.lastAccessedIndex = -1; } /// public void Clear() { this.lastAccessedElement = null; this.lastAccessedIndex = -1; this.headElement = null; this.count = 0; } /// public bool Contains(int integer) { int index = 0; DataGridViewIntLinkedListElement tmp = this.headElement; while (tmp != null) { if (tmp.Int == integer) { this.lastAccessedElement = tmp; this.lastAccessedIndex = index; return true; } tmp = tmp.Next; index++; } return false; } /// public int IndexOf(int integer) { if (Contains(integer)) { return this.lastAccessedIndex; } else { return -1; } } /// public bool Remove(int integer) { DataGridViewIntLinkedListElement tmp1 = null, tmp2 = this.headElement; while (tmp2 != null) { if (tmp2.Int == integer) { break; } tmp1 = tmp2; tmp2 = tmp2.Next; } if (tmp2.Int == integer) { DataGridViewIntLinkedListElement tmp3 = tmp2.Next; if (tmp1 == null) { this.headElement = tmp3; } else { tmp1.Next = tmp3; } this.count--; this.lastAccessedElement = null; this.lastAccessedIndex = -1; return true; } return false; } /// public void RemoveAt(int index) { DataGridViewIntLinkedListElement tmp1 = null, tmp2 = this.headElement; while (index > 0) { tmp1 = tmp2; tmp2 = tmp2.Next; index--; } DataGridViewIntLinkedListElement tmp3 = tmp2.Next; if (tmp1 == null) { this.headElement = tmp3; } else { tmp1.Next = tmp3; } this.count--; this.lastAccessedElement = null; this.lastAccessedIndex = -1; } } /// /// /// internal class DataGridViewIntLinkedListEnumerator : IEnumerator { private DataGridViewIntLinkedListElement headElement; private DataGridViewIntLinkedListElement current; private bool reset; ///Represents an emunerator of elements in a ///linked list. public DataGridViewIntLinkedListEnumerator(DataGridViewIntLinkedListElement headElement) { this.headElement = headElement; this.reset = true; } /// object IEnumerator.Current { get { Debug.Assert(this.current != null); // Since this is for internal use only. return this.current.Int; } } /// bool IEnumerator.MoveNext() { if (this.reset) { Debug.Assert(this.current == null); this.current = this.headElement; this.reset = false; } else { Debug.Assert(this.current != null); // Since this is for internal use only. this.current = this.current.Next; } return (this.current != null); } /// void IEnumerator.Reset() { this.reset = true; this.current = null; } } /// /// /// internal class DataGridViewIntLinkedListElement { private int integer; private DataGridViewIntLinkedListElement next; ///Represents an element in a ///linked list. public DataGridViewIntLinkedListElement(int integer) { this.integer = integer; } /// public int Int { get { return this.integer; } set { this.integer = value; } } /// public DataGridViewIntLinkedListElement Next { get { return this.next; } set { this.next = value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- _NestedMultipleAsyncResult.cs
- COM2FontConverter.cs
- SortableBindingList.cs
- CngAlgorithm.cs
- OutputCacheSettings.cs
- CalendarSelectionChangedEventArgs.cs
- EmptyQuery.cs
- QueueSurrogate.cs
- DocobjHost.cs
- XmlWriter.cs
- TextPatternIdentifiers.cs
- Symbol.cs
- CustomAttributeBuilder.cs
- Pipe.cs
- GlobalId.cs
- ImageFormat.cs
- DataServiceResponse.cs
- TypeUtil.cs
- SourceFilter.cs
- SiteMapNode.cs
- InvalidWMPVersionException.cs
- Accessible.cs
- SpecularMaterial.cs
- XappLauncher.cs
- FixedSOMTableRow.cs
- WindowsTreeView.cs
- QueryContinueDragEvent.cs
- CachedPathData.cs
- UnmanagedMemoryStream.cs
- SqlNamer.cs
- NamespaceMapping.cs
- Stack.cs
- WmlLinkAdapter.cs
- TextLineBreak.cs
- CapacityStreamGeometryContext.cs
- StyleHelper.cs
- SafePointer.cs
- GridViewDeletedEventArgs.cs
- OSFeature.cs
- WorkflowRuntimeService.cs
- PasswordPropertyTextAttribute.cs
- FontDriver.cs
- CodePropertyReferenceExpression.cs
- DbResourceAllocator.cs
- BufferedGraphics.cs
- GB18030Encoding.cs
- ReversePositionQuery.cs
- PublisherMembershipCondition.cs
- ConditionalBranch.cs
- Line.cs
- SpellerHighlightLayer.cs
- ResourceType.cs
- RequestStatusBarUpdateEventArgs.cs
- ListBindingConverter.cs
- InheritedPropertyChangedEventArgs.cs
- FormsAuthenticationEventArgs.cs
- MasterPageParser.cs
- FixedFindEngine.cs
- DataRow.cs
- SByteStorage.cs
- __TransparentProxy.cs
- FontUnitConverter.cs
- CroppedBitmap.cs
- coordinatorfactory.cs
- InputReferenceExpression.cs
- UnsafeNativeMethods.cs
- Timeline.cs
- WorkflowCreationContext.cs
- ReversePositionQuery.cs
- BaseCodeDomTreeGenerator.cs
- Metadata.cs
- TextLineResult.cs
- SlipBehavior.cs
- CompositeTypefaceMetrics.cs
- DictionaryManager.cs
- ManagementQuery.cs
- WebSysDisplayNameAttribute.cs
- TableLayoutPanelCellPosition.cs
- XsdSchemaFileEditor.cs
- CursorConverter.cs
- HttpStaticObjectsCollectionWrapper.cs
- Single.cs
- JoinElimination.cs
- ClientSettingsSection.cs
- Visual3D.cs
- DiagnosticEventProvider.cs
- BitmapCodecInfo.cs
- AutomationElementCollection.cs
- RuleProcessor.cs
- QilGenerator.cs
- FileIOPermission.cs
- BamlLocalizer.cs
- Code.cs
- SiteMembershipCondition.cs
- HtmlTableCell.cs
- SessionPageStatePersister.cs
- EntityClientCacheKey.cs
- ReachPageContentCollectionSerializer.cs
- MenuCommand.cs
- Funcletizer.cs