Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / XPath / Internal / XPathArrayIterator.cs / 2 / XPathArrayIterator.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
using System;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;
using System.Globalization;
using System.Collections;
[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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataObjectEventArgs.cs
- ImplicitInputBrush.cs
- CodeTypeParameter.cs
- ConnectionConsumerAttribute.cs
- ControlFilterExpression.cs
- EndpointDesigner.cs
- Logging.cs
- RepeatButton.cs
- OperationResponse.cs
- ArgumentFixer.cs
- ReliabilityContractAttribute.cs
- DbExpressionBuilder.cs
- BitmapMetadata.cs
- GenericEnumConverter.cs
- SeparatorAutomationPeer.cs
- QueryActivatableWorkflowsCommand.cs
- FolderLevelBuildProvider.cs
- Keywords.cs
- ManagementBaseObject.cs
- OneToOneMappingSerializer.cs
- Vector3D.cs
- AsymmetricAlgorithm.cs
- NamespaceInfo.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- TableAdapterManagerNameHandler.cs
- GACIdentityPermission.cs
- SimpleTypeResolver.cs
- UICuesEvent.cs
- xmlglyphRunInfo.cs
- NodeLabelEditEvent.cs
- HtmlElementErrorEventArgs.cs
- ConstructorBuilder.cs
- SelfIssuedSamlTokenFactory.cs
- WindowsPrincipal.cs
- Freezable.cs
- CompilerParameters.cs
- activationcontext.cs
- DispatchChannelSink.cs
- EditorZone.cs
- __Error.cs
- Freezable.cs
- XPathException.cs
- EventLogWatcher.cs
- ChangesetResponse.cs
- Group.cs
- CacheForPrimitiveTypes.cs
- DrawingContext.cs
- SectionXmlInfo.cs
- ClientTarget.cs
- CodeMemberField.cs
- GlyphRunDrawing.cs
- MatcherBuilder.cs
- TextEffectCollection.cs
- PasswordPropertyTextAttribute.cs
- CalendarTable.cs
- DBSqlParser.cs
- HebrewCalendar.cs
- ImportContext.cs
- OleDbParameter.cs
- SystemResourceKey.cs
- PriorityItem.cs
- BamlStream.cs
- InfoCardSymmetricAlgorithm.cs
- SqlCrossApplyToCrossJoin.cs
- IApplicationTrustManager.cs
- Parser.cs
- QueryTask.cs
- TextReader.cs
- SettingsPropertyIsReadOnlyException.cs
- LocalBuilder.cs
- InvalidateEvent.cs
- SoapExtensionTypeElementCollection.cs
- TrackingConditionCollection.cs
- TextTreeText.cs
- ProcessThreadCollection.cs
- DecoderFallbackWithFailureFlag.cs
- ClientTarget.cs
- DataServiceRequestException.cs
- EncryptedHeaderXml.cs
- BrushConverter.cs
- TdsParserStaticMethods.cs
- Single.cs
- FileChangesMonitor.cs
- ProcessHostConfigUtils.cs
- SynchronizedDispatch.cs
- AttachedAnnotation.cs
- DataTableTypeConverter.cs
- MissingMethodException.cs
- DispatcherEventArgs.cs
- StringWriter.cs
- HexParser.cs
- QueryCacheKey.cs
- NCryptNative.cs
- DocumentPageView.cs
- SafeReadContext.cs
- PrtTicket_Editor.cs
- XmlAttribute.cs
- _NetworkingPerfCounters.cs
- XmlSchemaInfo.cs
- ReflectionUtil.cs