Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Validation / ExtensionMethods.cs / 1305376 / ExtensionMethods.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Validation { using System.Collections; using System.Collections.Generic; using System.Text; static class ExtensionMethods { public static bool IsNullOrEmpty(this ICollection c) { return (c == null || c.Count == 0); } public static string AsCommaSeparatedValues(this IEnumerablec) { StringBuilder sb = new StringBuilder(); foreach (string s in c) { if (!string.IsNullOrEmpty(s)) { if (sb.Length == 0) { sb.Append(s); } else { sb.Append(", "); sb.Append(s); } } } return sb.ToString(); } public static int BinarySearch (this IList items, T value, IComparer comparer) { return BinarySearch(items, 0, items.Count, value, comparer); } public static void QuickSort (this IList items, IComparer comparer) { QuickSort(items, 0, items.Count - 1, comparer); } static int BinarySearch (IList items, int startIndex, int length, T value, IComparer comparer) { int start = startIndex; int end = (startIndex + length) - 1; while (start <= end) { int mid = start + ((end - start) >> 1); int result = comparer.Compare(items[mid], value); if (result == 0) { return mid; } if (result < 0) { start = mid + 1; } else { end = mid - 1; } } return ~start; } static void QuickSort (IList items, int startIndex, int endIndex, IComparer comparer) { Stack bounds = new Stack (); do { if (bounds.Count != 0) { endIndex = bounds.Pop(); startIndex = bounds.Pop(); } T pivot = items[startIndex]; int pivotIndex = startIndex; for (int i = startIndex + 1; i <= endIndex; i++) { if (comparer.Compare(pivot, items[i]) > 0) { pivotIndex++; if (pivotIndex != i) { items.Swap(pivotIndex, i); } } } if (startIndex != pivotIndex) { items.Swap(startIndex, pivotIndex); } if (pivotIndex + 1 < endIndex) { bounds.Push(pivotIndex + 1); bounds.Push(endIndex); } if (startIndex < pivotIndex - 1) { bounds.Push(startIndex); bounds.Push(pivotIndex - 1); } } while (bounds.Count != 0); } static void Swap (this IList items, int i, int j) { T temp = items[i]; items[i] = items[j]; items[j] = temp; } } } // 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
- Point4D.cs
- OverrideMode.cs
- WindowsGraphicsCacheManager.cs
- EntityDataSourceColumn.cs
- ActivityExecutionContext.cs
- ColumnWidthChangedEvent.cs
- DragEvent.cs
- SoapExtensionTypeElement.cs
- UnionExpr.cs
- EmptyControlCollection.cs
- SByte.cs
- odbcmetadatacollectionnames.cs
- BehaviorEditorPart.cs
- TreeViewImageGenerator.cs
- ServiceMoniker.cs
- EditorPart.cs
- ProgressBarAutomationPeer.cs
- MessageSmuggler.cs
- WebServiceHost.cs
- HttpWebRequestElement.cs
- PageCatalogPart.cs
- ThreadExceptionEvent.cs
- PreviewPageInfo.cs
- XPathQilFactory.cs
- TypeRefElement.cs
- TemplateNameScope.cs
- EnumMemberAttribute.cs
- DataReceivedEventArgs.cs
- ToolBarOverflowPanel.cs
- DiscoveryDocumentReference.cs
- SQLInt32Storage.cs
- ScrollChangedEventArgs.cs
- StorageRoot.cs
- RuleAction.cs
- CookielessHelper.cs
- OutputWindow.cs
- ThreadNeutralSemaphore.cs
- ConstraintManager.cs
- OverflowException.cs
- MsdtcClusterUtils.cs
- ReflectTypeDescriptionProvider.cs
- MaterializeFromAtom.cs
- BaseDataList.cs
- ValidationEventArgs.cs
- KeyboardDevice.cs
- FieldNameLookup.cs
- RightsManagementPermission.cs
- HandlerWithFactory.cs
- DecoratedNameAttribute.cs
- FigureParagraph.cs
- InvalidComObjectException.cs
- Dynamic.cs
- IdentityManager.cs
- CodeTypeReference.cs
- WindowsAuthenticationEventArgs.cs
- SizeAnimationClockResource.cs
- XslTransform.cs
- XmlSchemaObjectCollection.cs
- TextLineResult.cs
- OptimizedTemplateContentHelper.cs
- Socket.cs
- CodeGotoStatement.cs
- XamlVector3DCollectionSerializer.cs
- SerializationInfoEnumerator.cs
- TemplateXamlParser.cs
- EndpointDiscoveryMetadataCD1.cs
- TemplatedMailWebEventProvider.cs
- HostedImpersonationContext.cs
- MenuStrip.cs
- ThemeConfigurationDialog.cs
- UpdatePanelTrigger.cs
- DbExpressionBuilder.cs
- ArraySortHelper.cs
- DataRelation.cs
- PermissionSetEnumerator.cs
- ModifiableIteratorCollection.cs
- SqlRowUpdatingEvent.cs
- ConfigPathUtility.cs
- WebServiceEnumData.cs
- BulletDecorator.cs
- PageThemeParser.cs
- DbExpressionBuilder.cs
- EmissiveMaterial.cs
- InfoCardArgumentException.cs
- DbModificationCommandTree.cs
- UICuesEvent.cs
- CacheSection.cs
- TableHeaderCell.cs
- LambdaCompiler.Generated.cs
- SqlConnectionPoolGroupProviderInfo.cs
- HeaderPanel.cs
- AttributeXamlType.cs
- MouseCaptureWithinProperty.cs
- Argument.cs
- AccessViolationException.cs
- KnownColorTable.cs
- OdbcCommandBuilder.cs
- Activator.cs
- Win32.cs
- QilLoop.cs