В 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);
Это имеет преимущество в том, что не создает никаких временных массивов / объектов, когда строка уже короче желаемой длины.