Начиная с ES6, вы не можете создавать Enums как таковые, но у вас может быть более элегантный синтаксис, подходящий для автозаполнения кода, по крайней мере для VSCode:
class MyEnum {
const A = '1'
const B = '2'
const C = '3'
}
На плюсе вы можете поместить все, что угодно. хочу внутри const
, как и в других ответах. Кроме того, в Node вы можете экспортировать его как часть модуля, сохранив значимое имя.
import { MyEnum } from './my-enum'
console.log(MyEnum.B)
Надеюсь, это поможет.
Для меня работает следующее:
sb.ToString().TrimEnd( '\r', '\n' );
или
sb.ToString().TrimEnd( Environment.NewLine.ToCharArray());
Используйте платформу. Метод ReadLine () должен сказать следующее:
Строка определяется как последовательность символы, за которыми следует перевод строки ("\ n"), возврат каретки ("\ r") или сразу после возврата каретки переводом строки ("\ r \ n"). Строка который возвращается, не содержит завершение возврата каретки или строки feed.
Таким образом, следующий трюк поможет
_content = new StringReader(sb.ToString()).ReadLine();
Как насчет:
public static string TrimNewLines(string text)
{
while (text.EndsWith(Environment.NewLine))
{
text = text.Substring(0, text.Length - Environment.NewLine.Length);
}
return text;
}
Это несколько неэффективно, если есть несколько новых строк, но это будет работать.
В качестве альтернативы, если вы не против обрезки (скажем) "\ r \ r \ r \ r"
или "\ n \ n \ n \ n"
, а не просто "\ r \ n \ r \ n \ r \ n"
:
// No need to create a new array each time
private static readonly char[] NewLineChars = Environment.NewLine.ToCharArray();
public static string TrimNewLines(string text)
{
return text.TrimEnd(NewLineChars);
}
А как насчет
_content = sb.ToString().Trim(Environment.NewLine.ToCharArray());
_content = sb.TrimEnd(Environment.NewLine.ToCharArray());
Это, конечно же, удалит «\ r \ r \ r \ r», а также «\ n \ n \ n \ n» и другие комбинации. И в "средах", где NewLine отличается от "\ n \ r", вы можете получить странное поведение: -)
Но если вы можете смириться с этим, то я считаю, что это наиболее эффективный способ удалить символы новой строки в конец строки.
Как насчет только:
string text = sb.ToString().TrimEnd(null)
Это вытянет все пробельные символы из конца строки - проблема только в том случае, если вы хотите сохранить пробелы без новой строки.
Отчасти из отсутствие ответа, но самый простой способ вырезать новую строку из строки - это вообще не иметь новой строки в строке, убедившись, что ваш собственный код никогда не видит ее. То есть с помощью собственных функций, удаляющих новую строку. Многие методы stream и file / io не будут включать новую строку, если вы запрашиваете вывод построчно, хотя может потребоваться обернуть что-то в System.IO.BufferedStream
.
Такие вещи, как ] System.IO.File.ReadAllLines
может использоваться вместо System.IO.File.ReadAllText
большую часть времени, а ReadLine
может использоваться вместо ] Прочтите
, когда будете работать с нужным типом потока (например, грамм. BufferedStream
).