summaryrefslogtreecommitdiff
path: root/mcs/class/corlib/System/String.cs
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/corlib/System/String.cs')
-rw-r--r--mcs/class/corlib/System/String.cs14
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)