Last change
on this file since 471 was 377, checked in by alloc, 2 years ago |
Made SpaceWizards.HttpListener compilable against .NET 4.8 with preprocessor define UNITY_NETFRAMEWORK
|
File size:
1.5 KB
|
Line | |
---|
1 | // Licensed to the .NET Foundation under one or more agreements.
|
---|
2 | // The .NET Foundation licenses this file to you under the MIT license.
|
---|
3 |
|
---|
4 | #pragma warning disable CS8602
|
---|
5 |
|
---|
6 | using System.Diagnostics;
|
---|
7 |
|
---|
8 | namespace System
|
---|
9 | {
|
---|
10 | internal static class StringExtensions
|
---|
11 | {
|
---|
12 | internal static string SubstringTrim(this string value, int startIndex, int length)
|
---|
13 | {
|
---|
14 | Debug.Assert(value != null, "string must be non-null");
|
---|
15 | Debug.Assert(startIndex >= 0, "startIndex must be non-negative");
|
---|
16 | Debug.Assert(length >= 0, "length must be non-negative");
|
---|
17 | Debug.Assert(startIndex <= value.Length - length, "startIndex + length must be <= value.Length");
|
---|
18 |
|
---|
19 | if (length == 0)
|
---|
20 | {
|
---|
21 | return string.Empty;
|
---|
22 | }
|
---|
23 |
|
---|
24 | int endIndex = startIndex + length - 1;
|
---|
25 |
|
---|
26 | while (startIndex <= endIndex && char.IsWhiteSpace(value[startIndex]))
|
---|
27 | {
|
---|
28 | startIndex++;
|
---|
29 | }
|
---|
30 |
|
---|
31 | while (endIndex >= startIndex && char.IsWhiteSpace(value[endIndex]))
|
---|
32 | {
|
---|
33 | endIndex--;
|
---|
34 | }
|
---|
35 |
|
---|
36 | int newLength = endIndex - startIndex + 1;
|
---|
37 | Debug.Assert(newLength >= 0 && newLength <= value.Length, "Expected resulting length to be within value's length");
|
---|
38 |
|
---|
39 | return
|
---|
40 | newLength == 0 ? string.Empty :
|
---|
41 | newLength == value.Length ? value :
|
---|
42 | value.Substring(startIndex, newLength);
|
---|
43 | }
|
---|
44 | }
|
---|
45 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.