- PROИТ
- C# Перенос строки в коде (символы @ и +)
- Символы перехода на новую строку и возврат коретки
- Multiple ways to add newline into a String in C#
- Table of Contents
- Adding a New line using Environment.NewLine in a given string after a specific character
- Adding New Line using «\n» in C#
- Adding Line Break using Console.WriteLine()
- Multiple Lines using Single Console.WriteLine()
PROИТ
Office 365, AD, Active Directory, Sharepoint, C#, Powershell. Технические статьи и заметки.
C# Перенос строки в коде (символы @ и +)
Дано: текст кода на языке C#
Задача: перенести длинные строки на новую строку для улучшения визуального удобства чтения кода.
Если это длинная строка, содержащая определенный набор команд, то перенос можно сделать обычным нажатием Enter — дополнительных спецсимволов не требуется. В синтаксисе языка C# разрешается разносить команды на разные строки, однако не разрывая имен.
Например, есть следующие строки кода:
Их можно разбить, например, так:
Если же нужно разбить строковую переменную, то тут может быть 2 основных варианта.
Например, дана такая строка:
SELECT TOP 1 dep.intID, (SELECT cast(it.intNumber as nvarchar) + ',' as 'data()' FROM tblLinkDepartmentInTel lin INNER JOIN tblInTel it ON lin.intIDIntel = it.intID where lin.intIDDepartmet = dep.intID AND (lin.blnPublish = 1) order by it.intNumber for xml path('')) AS InTel, (SELECT et.strNumber + ',' as 'data()' FROM tblLinkDepartmentExTel let INNER JOIN tblExTel et ON let.intIDExtel = et.intID where let.intIDDepartmet = dep.intID and let.blnPublish = 1 order by et.strNumber for xml path('')) AS ExTel FROM tblDepartment dep WHERE dep.intID = 2
Вариант 1, мультистрока с «@» — просто перед присвоением строки ставим символ @:
Например,
DataTable dtDepartments = new DataTable(); string strSQL = @"SELECT TOP 1 dep.intID, (SELECT cast(it.intNumber as nvarchar) + ',' as 'data()' FROM tblLinkDepartmentInTel lin INNER JOIN tblInTel it ON lin.intIDIntel = it.intID where lin.intIDDepartmet = dep.intID AND (lin.blnPublish = 1) order by it.intNumber for xml path('')) AS InTel, (SELECT et.strNumber + ',' as 'data()' FROM tblLinkDepartmentExTel let INNER JOIN tblExTel et ON let.intIDExtel = et.intID where let.intIDDepartmet = dep.intID and let.blnPublish = 1 order by et.strNumber for xml path('')) AS ExTel FROM tblDepartment dep WHERE dep.intID = @strDepartmentID";
Вариант 2, конкатенация с «+» — разбиваем строку на части и применяем стандартную конкатенацию:
DataTable dtDepartments = new DataTable(); string strSQL = "SELECT TOP 1 dep.intID, " + "(SELECT cast(it.intNumber as nvarchar) + ',' as 'data()' " + "FROM tblLinkDepartmentInTel lin INNER JOIN tblInTel it " + " ON lin.intIDIntel = it.intID" + "where lin.intIDDepartmet = dep.intID AND (lin.blnPublish = 1)" + "order by it.intNumber" + "for xml path('')) AS InTel," + "(SELECT et.strNumber + ',' as 'data()' " + "FROM tblLinkDepartmentExTel let INNER JOIN" + "tblExTel et ON let.intIDExtel = et.intID" + "where let.intIDDepartmet = dep.intID and let.blnPublish = 1" + "order by et.strNumber" + "for xml path('')) AS ExTel" + "FROM tblDepartment dep WHERE dep.intID = @strDepartmentID";
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
Символы перехода на новую строку и возврат коретки
Assembler — сформировать новую строку, добавив символы перевода строки и коретки после каждого слова
Дана строка : «Assembler language programming is the fastest in the world.» Написать программу.
Возврат коретки
В чём отличие. Программы выводят разные данные? Думаю, что 1 код работает почему-то неправильно.
Событие перехода на новую строку
Доброго времени суток! У меня есть такой код private void dataGridView1_RowValidating(object.
Игнорирование перехода на новую строку
Добрый день! Использую VS’2013. Консольное приложение Win32. Возникла необходимость в консоли.
string s = string.Empty; // или null foreach (Process p in Process.GetProcesses()) { s += p.ProcessName + "\r\n" /* или Environment.NewLine */; } MessageBox.Show(s);
StringBuilder sb = new StringBuilder(); foreach (Process p in Process.GetProcesses()) { sb.AppendLine(p.ProcessName); } MessageBox.Show(sb.ToString());
body90, тем что «\n» — соответствует символу новой строки, «\r» — возврат каретки, и \r != \n. В Windows нет общего стандарта (имхо, я не видел) для перевода символов на новую строку, кто-то использует \n, кто-то \r\n, и вариант с \n может отображаться некорректно в некоторых редакторах. Лучший вариант использовать Environment.NewLine, т.к. это свойство зависит от версии ОС, но часто писать его лень )
Лучший вариант использовать Environment.NewLine, т.к. это свойство зависит от версии ОС, но часто писать его лень
public static string NewLine { get { return "\r\n"; } }
Сообщение от Башир
string s = string.Empty; foreach (Process p in Process.GetProcesses()) { s = s + (char)13 + (char)10 + p.ProcessName; } MessageBox.Show(s);
s += (char)13 + (char)10 + p.ProcessName;
,то сначала происходит сложение (char)13 + (char)10 = (char)23, а после приведение к строке, т.е. «23»+p.ProcessName.
Во втором случае:
s = s + (char)13 + (char)10 + p.ProcessName;
Делюсь свои опытом: при написании эмулятора пользователя для Viber (не спрашивайте, почитайте сколько вайбер хочет брать с чат-ботов за сообщения), Environment.NewLine создавал эффект нажатия на ЕНТЕР (то есть каждая строка был как новое сообщение.
В свою очередь, символ перевода каретки «\n» просто переводил каретку на новую строку. Результат — полноценние сообщения)
Ввод с клавиатуры до перехода на новую строку
Добрый день! Столкнулся со следующей проблемой. Мне нужно написать фрагмент программы с вводом.
Отмена перехода на новую строку у textarea
Как отменить переход на новую строку, если пользователь жмёт Enter? И как можно переназначить.
Размер символа перехода на новую строку
Программа записывает в файл, а потом читает структуру такого типа: // размеры в файле.
Не считывается символ перехода на новую строку
Здравствуйте, такой вопрос. Я создал форму. Ввожу в нее текст, отправляю запрос, все работает.
cin без перехода на новую строку
Как сделать, чтобы после считывания cin курсор не переводился на новую строку, а оставался на.
Считывание перехода на новую строку в jTextPane
Здравствуйте. Проблема вкратце: Считываю текст с jTextPane и шифрую его. Пробелы, переход на.
Multiple ways to add newline into a String in C#
In our C# tutorial, you can read about C# strings , C# String Interpolation or Console.WriteLine() in C# print string with newline, but in this article I have provided multiple ways to insert a newline break into a string using C# Console application examples.
Table of Contents
Adding a New line using Environment.NewLine in a given string after a specific character
Suppose, you already have a string and you want to add a NewLine after a specific character, let’s say «#», you want to replace all occurences of «#» in a given string with a newline, then you can simply use Environment.NewLine
var CurrentStr="Hello World#Welcome to qawithexperts#Thanks for reading";
Then you can use the below C# Console Application C#
using System; public class Program < public static void Main() < var CurrentStr="Hello World#Welcome to qawithexperts#Thanks for reading"; //.Replace("oldCharacter","NewCharacter") //here oldCharacter =# //NewCharacter = New Line CurrentStr = CurrentStr.Replace("#", System.Environment.NewLine); Console.Write(CurrentStr); >>
Hello World Welcome to qawithexperts Thanks for reading
Adding New Line using «\n» in C#
For above example, you can also use » \n » instead of System.Environment.NewLine , so considering above example, we can have below C# code
var CurrentStr="Hello World#Welcome to qawithexperts#Thanks for reading"; CurrentStr = CurrentStr.Replace("#", "\n"); Console.Write(CurrentStr);
Adding Line Break using Console.WriteLine()
You can also simply use Console.WriteLine() to add line break in your current solution.
Suppose, you want to simply add a blank line and want to move cursor in your console application to next line, you can simply use Console.WriteLine(), as shown in the below example
using System; public class Program < public static void Main() < Console.WriteLine("Hello World"); // This will print text and also move cursor to next line Console.WriteLine("Welcome to qawithexperts"); Console.WriteLine("Thanks for reading example using Console.WriteLine()"); >>
Hello World Welcome to qawithexperts Thanks for reading example using Console.WriteLine()
Multiple Lines using Single Console.WriteLine()
Suppose, you want to show multiple text line using 1 Console.WriteLine() , then you can simply add «@» the beginning of the Console.WriteLine() string and split text in lines.
Console.WriteLine(@"Hello World Welcome to qawithexperts Multiple lines using Single Console.WriteLine");
Hello World Welcome to qawithexperts Multiple lines using Single Console.WriteLine
That’s it, these are some of the ways to add new line in C#, but easiest one if to use «\n» or using Console.WriteLine().