Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Design / system / Data / Common / Utils / StringUtil.cs / 1 / StringUtil.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Globalization; using System.Diagnostics; namespace System.Data.Common.Utils { // This class provides some useful string utilities, e.g., converting a // list to string. internal static class StringUtil { ////// This private static method checks a string to make sure that it is not empty. /// Comparing with String.Empty is not sufficient since a string with nothing /// but white space isn't considered "empty" by that rationale. /// internal static bool IsNullOrEmptyOrWhiteSpace(string value) { return IsNullOrEmptyOrWhiteSpace(value, 0); } internal static bool IsNullOrEmptyOrWhiteSpace(string value, int offset) { // don't use Trim(), which will copy the string, which may be large, just to test for emptyness //return String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()); if (null != value) { for(int i = offset; i < value.Length; ++i) { if (!Char.IsWhiteSpace(value[i])) { return false; } } } return true; } // separate implementation from IsNullOrEmptyOrWhiteSpace(string, int) because that one will // pick up the jit optimization to avoid boundary checks and the this won't is unknown (most likely not) internal static bool IsNullOrEmptyOrWhiteSpace(string value, int offset, int length) { // don't use Trim(), which will copy the string, which may be large, just to test for emptyness //return String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()); if (null != value) { length = Math.Min(value.Length, length); for(int i = offset; i < length; ++i) { if (!Char.IsWhiteSpace(value[i])) { return false; } } } return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Globalization; using System.Diagnostics; namespace System.Data.Common.Utils { // This class provides some useful string utilities, e.g., converting a // list to string. internal static class StringUtil { ////// This private static method checks a string to make sure that it is not empty. /// Comparing with String.Empty is not sufficient since a string with nothing /// but white space isn't considered "empty" by that rationale. /// internal static bool IsNullOrEmptyOrWhiteSpace(string value) { return IsNullOrEmptyOrWhiteSpace(value, 0); } internal static bool IsNullOrEmptyOrWhiteSpace(string value, int offset) { // don't use Trim(), which will copy the string, which may be large, just to test for emptyness //return String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()); if (null != value) { for(int i = offset; i < value.Length; ++i) { if (!Char.IsWhiteSpace(value[i])) { return false; } } } return true; } // separate implementation from IsNullOrEmptyOrWhiteSpace(string, int) because that one will // pick up the jit optimization to avoid boundary checks and the this won't is unknown (most likely not) internal static bool IsNullOrEmptyOrWhiteSpace(string value, int offset, int length) { // don't use Trim(), which will copy the string, which may be large, just to test for emptyness //return String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()); if (null != value) { length = Math.Min(value.Length, length); for(int i = offset; i < length; ++i) { if (!Char.IsWhiteSpace(value[i])) { return false; } } } return true; } } } // 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
- AttachedPropertyBrowsableAttribute.cs
- FormsAuthenticationTicket.cs
- HelpEvent.cs
- CallbackValidatorAttribute.cs
- DeclarativeCatalogPart.cs
- RemotingSurrogateSelector.cs
- FieldBuilder.cs
- IndicShape.cs
- AppearanceEditorPart.cs
- HelpKeywordAttribute.cs
- ObjectAssociationEndMapping.cs
- ObservableDictionary.cs
- TraceListeners.cs
- StreamInfo.cs
- XmlSequenceWriter.cs
- SQLInt64Storage.cs
- DesignTimeTemplateParser.cs
- OracleCommandBuilder.cs
- IndexerNameAttribute.cs
- BCLDebug.cs
- Visual3D.cs
- EmbeddedMailObjectsCollection.cs
- LocalizationParserHooks.cs
- AmbientLight.cs
- SafeNativeMethods.cs
- LicenseProviderAttribute.cs
- securitycriticaldataClass.cs
- LoginAutoFormat.cs
- SQLBinary.cs
- DoubleSumAggregationOperator.cs
- ADConnectionHelper.cs
- Latin1Encoding.cs
- AliasGenerator.cs
- ReadOnlyCollection.cs
- LogManagementAsyncResult.cs
- BaseTreeIterator.cs
- KeyBinding.cs
- BatchParser.cs
- TcpHostedTransportConfiguration.cs
- XamlTypeMapper.cs
- DayRenderEvent.cs
- XmlResolver.cs
- ExtensionSimplifierMarkupObject.cs
- EntityContainer.cs
- XmlNodeList.cs
- HtmlTable.cs
- XmlSchemaExternal.cs
- AbstractDataSvcMapFileLoader.cs
- _AutoWebProxyScriptHelper.cs
- SqlXml.cs
- ExpressionPrefixAttribute.cs
- CmsInterop.cs
- ReadOnlyDictionary.cs
- AttributeConverter.cs
- ConfigurationLoaderException.cs
- StreamGeometry.cs
- NativeMethods.cs
- ProvidersHelper.cs
- Attributes.cs
- TextEditorThreadLocalStore.cs
- StreamResourceInfo.cs
- RowTypePropertyElement.cs
- AppDomainManager.cs
- Win32PrintDialog.cs
- Table.cs
- ObjectViewFactory.cs
- Vector3DCollection.cs
- ClientSettings.cs
- HyperlinkAutomationPeer.cs
- TableRowGroup.cs
- PinnedBufferMemoryStream.cs
- TraceHwndHost.cs
- DefaultEventAttribute.cs
- Error.cs
- AuthenticationException.cs
- ReaderContextStackData.cs
- TextSelection.cs
- TransportDefaults.cs
- ListControlConvertEventArgs.cs
- EdmEntityTypeAttribute.cs
- AggregateNode.cs
- Matrix3DValueSerializer.cs
- FileLevelControlBuilderAttribute.cs
- GrammarBuilderWildcard.cs
- AssemblyNameProxy.cs
- RemoteWebConfigurationHost.cs
- DocumentationServerProtocol.cs
- TableRowCollection.cs
- BaseTemplateBuildProvider.cs
- loginstatus.cs
- AncillaryOps.cs
- PathGeometry.cs
- HeaderLabel.cs
- RowsCopiedEventArgs.cs
- Stack.cs
- ScrollBar.cs
- IDictionary.cs
- WebPartDisplayModeCollection.cs
- DynamicRendererThreadManager.cs
- CellTreeNodeVisitors.cs