diff options
Diffstat (limited to 'mcs/class/corlib/System/String.cs')
-rw-r--r-- | mcs/class/corlib/System/String.cs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/mcs/class/corlib/System/String.cs b/mcs/class/corlib/System/String.cs index d30735f9bd..1d32ab6d41 100644 --- a/mcs/class/corlib/System/String.cs +++ b/mcs/class/corlib/System/String.cs @@ -2710,9 +2710,7 @@ namespace System if (values == null) throw new ArgumentNullException ("values"); - var stringList = new List<string> (); - foreach (var v in values) - stringList.Add (v); + var stringList = new List<string> (values); return JoinUnchecked (separator, stringList.ToArray (), 0, stringList.Count); } @@ -2743,11 +2741,13 @@ namespace System if (values == null) throw new ArgumentNullException ("values"); - var stringList = new List<string> (); - foreach (var v in values) - stringList.Add (v.ToString ()); + var stringList = values as IList<T> ?? new List<T> (values); + var strCopy = new string [stringList.Count]; + int i = 0; + foreach (var v in stringList) + strCopy [i++] = v.ToString (); - return JoinUnchecked (separator, stringList.ToArray (), 0, stringList.Count); + return JoinUnchecked (separator, strCopy, 0, strCopy.Length); } public static bool IsNullOrWhiteSpace (string value) |