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
- TransportChannelFactory.cs
- Pool.cs
- Attributes.cs
- ReferencedAssembly.cs
- DesignerLinkAdapter.cs
- QEncodedStream.cs
- XhtmlConformanceSection.cs
- UniqueConstraint.cs
- DataGridViewCellParsingEventArgs.cs
- DropDownButton.cs
- AbstractSvcMapFileLoader.cs
- __TransparentProxy.cs
- PackWebRequest.cs
- WithStatement.cs
- SqlXmlStorage.cs
- DynamicEntity.cs
- InheritanceContextChangedEventManager.cs
- SoapFault.cs
- GradientBrush.cs
- FaultReason.cs
- Exceptions.cs
- CompensatableTransactionScopeActivity.cs
- CompositeActivityCodeGenerator.cs
- CompositeControl.cs
- FontUnit.cs
- SemaphoreSecurity.cs
- MessageDirection.cs
- ContentPresenter.cs
- WebPartCancelEventArgs.cs
- FontStyleConverter.cs
- Size.cs
- InvariantComparer.cs
- ComponentEvent.cs
- StrokeNodeOperations2.cs
- SimplePropertyEntry.cs
- FontSource.cs
- ICspAsymmetricAlgorithm.cs
- PersonalizationProviderCollection.cs
- UnsettableComboBox.cs
- BooleanExpr.cs
- WebPartConnectionsCloseVerb.cs
- DataGridColumnCollection.cs
- AutomationPatternInfo.cs
- NullExtension.cs
- DelegateHelpers.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- BitStack.cs
- ProcessHostMapPath.cs
- EntityDataSourceChangingEventArgs.cs
- IntSecurity.cs
- ExpressionBuilderContext.cs
- RuleSettingsCollection.cs
- ClientSettingsSection.cs
- ObjectDataSourceDisposingEventArgs.cs
- TransportElement.cs
- SemaphoreFullException.cs
- ControlBuilderAttribute.cs
- XmlSchemaComplexContentRestriction.cs
- Window.cs
- TextElement.cs
- IdentifierService.cs
- LayoutTableCell.cs
- ControlEvent.cs
- StreamResourceInfo.cs
- DataColumnSelectionConverter.cs
- ButtonChrome.cs
- TemplatingOptionsDialog.cs
- ControlParameter.cs
- ThrowHelper.cs
- WindowsNonControl.cs
- Win32KeyboardDevice.cs
- Privilege.cs
- DPCustomTypeDescriptor.cs
- SystemParameters.cs
- AutomationPatternInfo.cs
- Msec.cs
- DataBindEngine.cs
- DataGridViewCellMouseEventArgs.cs
- ConnectionPointCookie.cs
- EventLog.cs
- HtmlLink.cs
- DoubleLink.cs
- Rule.cs
- SqlCachedBuffer.cs
- ObjectSet.cs
- SoapEnumAttribute.cs
- GridViewUpdatedEventArgs.cs
- IteratorDescriptor.cs
- HostingEnvironmentSection.cs
- UIElement3DAutomationPeer.cs
- GeneralTransformCollection.cs
- DBCSCodePageEncoding.cs
- BitmapEffect.cs
- SelectionHighlightInfo.cs
- DataColumn.cs
- SignatureResourcePool.cs
- JsonObjectDataContract.cs
- SimpleHandlerBuildProvider.cs
- QueryCreatedEventArgs.cs
- webeventbuffer.cs