Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / XPathArrayIterator.cs / 1305376 / XPathArrayIterator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System; using System.Collections; using System.Diagnostics; using System.Text; using System.Xml; using System.Xml.XPath; namespace MS.Internal.Xml.XPath { [DebuggerDisplay("Position={CurrentPosition}, Current={debuggerDisplayProxy, nq}")] internal class XPathArrayIterator : ResetableIterator { protected IList list; protected int index; public XPathArrayIterator(IList list) { this.list = list; } public XPathArrayIterator(XPathArrayIterator it) { this.list = it.list; this.index = it.index; } public XPathArrayIterator(XPathNodeIterator nodeIterator) { this.list = new ArrayList(); while (nodeIterator.MoveNext()) { this.list.Add(nodeIterator.Current.Clone()); } } public IList AsList { get { return this.list; } } public override XPathNodeIterator Clone() { return new XPathArrayIterator(this); } public override XPathNavigator Current { get { Debug.Assert(index <= list.Count); if (index < 1) { throw new InvalidOperationException(Res.GetString(Res.Sch_EnumNotStarted, string.Empty)); } return (XPathNavigator) list[index - 1]; } } public override int CurrentPosition { get { return index; } } public override int Count { get { return list.Count; } } public override bool MoveNext() { Debug.Assert(index <= list.Count); if (index == list.Count) { return false; } index++; return true; } public override void Reset() { index = 0; } public override IEnumerator GetEnumerator() { return list.GetEnumerator(); } private object debuggerDisplayProxy { get { return index < 1 ? null : (object)new XPathNavigator.DebuggerDisplayProxy(Current); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System; using System.Collections; using System.Diagnostics; using System.Text; using System.Xml; using System.Xml.XPath; namespace MS.Internal.Xml.XPath { [DebuggerDisplay("Position={CurrentPosition}, Current={debuggerDisplayProxy, nq}")] internal class XPathArrayIterator : ResetableIterator { protected IList list; protected int index; public XPathArrayIterator(IList list) { this.list = list; } public XPathArrayIterator(XPathArrayIterator it) { this.list = it.list; this.index = it.index; } public XPathArrayIterator(XPathNodeIterator nodeIterator) { this.list = new ArrayList(); while (nodeIterator.MoveNext()) { this.list.Add(nodeIterator.Current.Clone()); } } public IList AsList { get { return this.list; } } public override XPathNodeIterator Clone() { return new XPathArrayIterator(this); } public override XPathNavigator Current { get { Debug.Assert(index <= list.Count); if (index < 1) { throw new InvalidOperationException(Res.GetString(Res.Sch_EnumNotStarted, string.Empty)); } return (XPathNavigator) list[index - 1]; } } public override int CurrentPosition { get { return index; } } public override int Count { get { return list.Count; } } public override bool MoveNext() { Debug.Assert(index <= list.Count); if (index == list.Count) { return false; } index++; return true; } public override void Reset() { index = 0; } public override IEnumerator GetEnumerator() { return list.GetEnumerator(); } private object debuggerDisplayProxy { get { return index < 1 ? null : (object)new XPathNavigator.DebuggerDisplayProxy(Current); } } } } // 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
- UnsafeNativeMethods.cs
- SafeMarshalContext.cs
- StyleReferenceConverter.cs
- UserControlDocumentDesigner.cs
- RemotingException.cs
- OleDbMetaDataFactory.cs
- PresentationAppDomainManager.cs
- ResourcePool.cs
- WrapPanel.cs
- iisPickupDirectory.cs
- ProtectedConfigurationSection.cs
- RequestCachePolicyConverter.cs
- EditorZone.cs
- NullableDecimalAverageAggregationOperator.cs
- _AuthenticationState.cs
- ComplexLine.cs
- SimpleApplicationHost.cs
- SafeReversePInvokeHandle.cs
- PropagationProtocolsTracing.cs
- ControlParameter.cs
- ModulesEntry.cs
- DataGridColumnHeaderAutomationPeer.cs
- SystemBrushes.cs
- Transform3DGroup.cs
- InputLanguageManager.cs
- OletxCommittableTransaction.cs
- WebServiceErrorEvent.cs
- ApplicationProxyInternal.cs
- DefaultShape.cs
- ScrollBarAutomationPeer.cs
- CheckBoxRenderer.cs
- ContentPresenter.cs
- TemplateBuilder.cs
- CodeConstructor.cs
- BaseCodePageEncoding.cs
- ThicknessAnimationUsingKeyFrames.cs
- ServiceProviders.cs
- WebPartDescriptionCollection.cs
- Popup.cs
- LinearKeyFrames.cs
- ConfigXmlComment.cs
- TextMetrics.cs
- CodeNamespaceCollection.cs
- OleDbRowUpdatingEvent.cs
- WebPartsSection.cs
- ChameleonKey.cs
- SortFieldComparer.cs
- SpeakCompletedEventArgs.cs
- ListViewDataItem.cs
- SqlCacheDependencySection.cs
- COM2PictureConverter.cs
- DataGridViewToolTip.cs
- FormClosingEvent.cs
- LinkTarget.cs
- MessageQueueInstaller.cs
- KnownTypes.cs
- ClientSettingsProvider.cs
- ResourceReferenceKeyNotFoundException.cs
- ConfigurationPropertyCollection.cs
- MetadataHelper.cs
- XamlParser.cs
- JsonFormatWriterGenerator.cs
- MetadataProperty.cs
- SqlDataSourceStatusEventArgs.cs
- Cloud.cs
- ArraySet.cs
- StatusBarAutomationPeer.cs
- Empty.cs
- EntityDesignerUtils.cs
- PostBackOptions.cs
- HiddenField.cs
- DBCSCodePageEncoding.cs
- ContextBase.cs
- Point3DKeyFrameCollection.cs
- ChooseAction.cs
- FunctionDetailsReader.cs
- ActiveXMessageFormatter.cs
- BitSet.cs
- FigureHelper.cs
- CharacterBufferReference.cs
- OperationResponse.cs
- FlagsAttribute.cs
- ServiceContractGenerator.cs
- PerspectiveCamera.cs
- ThreadExceptionEvent.cs
- SimpleTypeResolver.cs
- BreakRecordTable.cs
- LinearGradientBrush.cs
- Int32KeyFrameCollection.cs
- Hyperlink.cs
- ResponseBodyWriter.cs
- RotateTransform.cs
- DataGridViewColumnCollection.cs
- GridSplitterAutomationPeer.cs
- LocalizableResourceBuilder.cs
- WebMethodAttribute.cs
- WebDescriptionAttribute.cs
- CipherData.cs
- PerformanceCounterManager.cs
- TaskFileService.cs