Code:
/ DotNET / DotNET / 8.0 / untmp / Orcas / RTM / ndp / fx / src / xsp / System / Web / Extensions / ui / webcontrols / LinqDataSourceHelper.cs / 1 / LinqDataSourceHelper.cs
namespace System.Web.UI.WebControls { using System.Collections; using System.Collections.Generic; internal class LinqDataSourceHelper { public static bool EnumerableContentEquals(IEnumerable enumerableA, IEnumerable enumerableB) { IEnumerator enumeratorA = enumerableA.GetEnumerator(); IEnumerator enumeratorB = enumerableB.GetEnumerator(); while (enumeratorA.MoveNext()) { if (!enumeratorB.MoveNext()) return false; object itemA = enumeratorA.Current; object itemB = enumeratorB.Current; if (itemA == null) { if (itemB != null) return false; } else if (!itemA.Equals(itemB)) return false; } if (enumeratorB.MoveNext()) return false; return true; } public static Type FindGenericEnumerableType(Type type) { // Logic taken from Queryable.AsQueryable which accounts for Array types which are not // generic but implement the generic IEnumerable interface. while ((type != null) && (type != typeof(object)) && (type != typeof(string))) { if (type.IsGenericType && (type.GetGenericTypeDefinition() == typeof(IEnumerable<>))) { return type; } foreach (Type interfaceType in type.GetInterfaces()) { Type genericInterface = FindGenericEnumerableType(interfaceType); if (genericInterface != null) { return genericInterface; } } type = type.BaseType; } return null; } } } // 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
- QilInvoke.cs
- BitmapEffectDrawingContextWalker.cs
- XmlArrayItemAttribute.cs
- SplitterEvent.cs
- ToolStripDropDownClosingEventArgs.cs
- SafePipeHandle.cs
- SizeAnimationClockResource.cs
- FontEmbeddingManager.cs
- SByteConverter.cs
- FontDialog.cs
- TextRange.cs
- DelegateBodyWriter.cs
- WindowsListViewScroll.cs
- Repeater.cs
- WebPartMenu.cs
- StreamGeometry.cs
- GroupedContextMenuStrip.cs
- EntityParameter.cs
- LabelInfo.cs
- Exceptions.cs
- Int64AnimationUsingKeyFrames.cs
- TreeNodeClickEventArgs.cs
- PrePostDescendentsWalker.cs
- RowSpanVector.cs
- Activator.cs
- DataGridViewRowsRemovedEventArgs.cs
- SimpleBitVector32.cs
- HelpEvent.cs
- SqlBulkCopy.cs
- DataViewSetting.cs
- HostingEnvironmentSection.cs
- DetailsViewPageEventArgs.cs
- ImageCollectionEditor.cs
- TextTreeInsertUndoUnit.cs
- RoleManagerModule.cs
- ExtendedPropertyCollection.cs
- SiteMapNodeItem.cs
- GetMemberBinder.cs
- NumericUpDownAccelerationCollection.cs
- Size.cs
- AttributeSetAction.cs
- ColorAnimationBase.cs
- DataGridViewCellFormattingEventArgs.cs
- SqlCharStream.cs
- TextEditorSelection.cs
- TcpClientChannel.cs
- XPathDocumentNavigator.cs
- ExceptionUtility.cs
- ClientProtocol.cs
- AdornerDecorator.cs
- XmlSchemaInferenceException.cs
- HuffmanTree.cs
- XmlSerializerVersionAttribute.cs
- ValueTable.cs
- DefaultSection.cs
- CFStream.cs
- Fonts.cs
- UpdateProgress.cs
- ClickablePoint.cs
- XmlCharacterData.cs
- EventLogSession.cs
- AdornerHitTestResult.cs
- Stack.cs
- RolePrincipal.cs
- XsdDuration.cs
- SecurityTokenResolver.cs
- SpanIndex.cs
- SqlCacheDependency.cs
- InfoCardListRequest.cs
- ImplicitInputBrush.cs
- EditorPartChrome.cs
- InheritanceContextHelper.cs
- RichTextBox.cs
- ContractNamespaceAttribute.cs
- dtdvalidator.cs
- ControlPaint.cs
- VisualState.cs
- StrokeNodeOperations.cs
- ConnectionManagementElementCollection.cs
- NamespaceCollection.cs
- Action.cs
- SQLCharsStorage.cs
- XmlSchemaNotation.cs
- SqlClientPermission.cs
- ScriptResourceHandler.cs
- ChannelProtectionRequirements.cs
- ScriptModule.cs
- DataGridViewUtilities.cs
- HttpPostClientProtocol.cs
- StylusPointProperties.cs
- DataSourceControlBuilder.cs
- TextEncodedRawTextWriter.cs
- NativeCppClassAttribute.cs
- ReadOnlyDataSourceView.cs
- ColorAnimation.cs
- HebrewNumber.cs
- ContentFileHelper.cs
- DefaultHttpHandler.cs
- XsltArgumentList.cs
- CompleteWizardStep.cs