Ответ 1
В System.Linq не встроен метод, но вы можете легко написать свой собственный метод расширения:
public static class StringExtensions
{
public static string ToSystemString(this IEnumerable<char> source)
{
return new string(source.ToArray());
}
}
К сожалению, поскольку object.ToString
существует на всех объектах .NET, вам нужно будет дать методу другое имя, чтобы компилятор вызывал ваш метод расширения, а не встроенный ToString
.
В соответствии с вашим комментарием ниже, хорошо спросить, является ли это правильным подходом. Поскольку String
предоставляет множество функций через свои общедоступные методы, я бы реализовал этот метод как расширение на String
:
/// <summary>
/// Truncates a string to a maximum length.
/// </summary>
/// <param name="value">The string to truncate.</param>
/// <param name="length">The maximum length of the returned string.</param>
/// <returns>The input string, truncated to <paramref name="length"/> characters.</returns>
public static string Truncate(this string value, int length)
{
if (value == null)
throw new ArgumentNullException("value");
return value.Length <= length ? value : value.Substring(0, length);
}
Вы использовали бы его следующим образом:
string SomeText = "this is some text in a string";
return SomeText.Truncate(6);
Это имеет то преимущество, что не создавайте временные массивы/объекты, когда строка уже короче искомой длины.