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
- ViewStateModeByIdAttribute.cs
- OutOfProcStateClientManager.cs
- SettingsBase.cs
- ToolStripRendererSwitcher.cs
- ComPlusInstanceProvider.cs
- TrustLevel.cs
- basenumberconverter.cs
- TextViewElement.cs
- RemoteWebConfigurationHostServer.cs
- BaseValidator.cs
- SafeRightsManagementEnvironmentHandle.cs
- TypeUtils.cs
- VectorAnimation.cs
- DataGridViewCellStateChangedEventArgs.cs
- IteratorFilter.cs
- TextPattern.cs
- PeerPresenceInfo.cs
- LocalBuilder.cs
- GridSplitter.cs
- DrawingContext.cs
- ACE.cs
- XmlSchemaAll.cs
- OpenTypeCommon.cs
- ResolveNameEventArgs.cs
- AppDomainFactory.cs
- HttpHandlerActionCollection.cs
- WinInet.cs
- XmlChildNodes.cs
- ExtendedPropertyInfo.cs
- ToolStripOverflow.cs
- ResumeStoryboard.cs
- ProfilePropertyNameValidator.cs
- SmiRecordBuffer.cs
- EntityTypeEmitter.cs
- DataAccessException.cs
- SafeTokenHandle.cs
- DeclaredTypeValidator.cs
- XD.cs
- XmlValidatingReaderImpl.cs
- ObjectDataSource.cs
- ipaddressinformationcollection.cs
- SrgsGrammar.cs
- SafeSerializationManager.cs
- EventProviderClassic.cs
- RequestCachePolicyConverter.cs
- CustomErrorsSectionWrapper.cs
- OrthographicCamera.cs
- Timer.cs
- Int64AnimationUsingKeyFrames.cs
- ServerIdentity.cs
- TypeTypeConverter.cs
- ContentPlaceHolderDesigner.cs
- InkPresenter.cs
- _ListenerRequestStream.cs
- Padding.cs
- ProtocolElementCollection.cs
- EndpointDiscoveryElement.cs
- CapacityStreamGeometryContext.cs
- PointLightBase.cs
- TcpTransportSecurity.cs
- ClipboardProcessor.cs
- DataBoundLiteralControl.cs
- ConditionalWeakTable.cs
- unsafenativemethodstextservices.cs
- documentsequencetextpointer.cs
- SslStreamSecurityUpgradeProvider.cs
- ControlTemplate.cs
- CompoundFileIOPermission.cs
- PatternMatcher.cs
- UserPreferenceChangingEventArgs.cs
- PageStatePersister.cs
- TransformGroup.cs
- CodeExpressionCollection.cs
- TextEditorMouse.cs
- CodePageEncoding.cs
- XmlDataProvider.cs
- RuleSettings.cs
- DataListDesigner.cs
- XMLSchema.cs
- XPathDocumentBuilder.cs
- SessionState.cs
- DesignTimeDataBinding.cs
- PathFigureCollectionConverter.cs
- EditorPartChrome.cs
- XmlIgnoreAttribute.cs
- StringCollection.cs
- RelatedView.cs
- SessionStateModule.cs
- SmiXetterAccessMap.cs
- DataStorage.cs
- MachineKeySection.cs
- FormViewDeleteEventArgs.cs
- Decimal.cs
- OdbcConnectionStringbuilder.cs
- ClientTargetCollection.cs
- EntityContainerAssociationSet.cs
- BuildProviderAppliesToAttribute.cs
- CollectionDataContractAttribute.cs
- DiagnosticTraceSource.cs
- SortDescription.cs