Вам нужно передать значения из вашего View в виде одного массива, а затем вы можете получить их и поиграть с ними, чтобы превратить их в любую структуру данных, которую вы хотите.
используя этот код, вы можете разбить массив, покас учетом новых строк и пустых записей:
var list = input[1].Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();
РЕДАКТИРОВАТЬ
, как @phuzi предположил в комментариях, что это может работать не во всех операционных системах.поэтому я посмотрел на это и обнаружил, что он был прав, поэтому вот некоторая хорошая информация.
официальный MSDN говорит:
Строка, содержащая "\ r \ n" для не-Unix-платформ,или строка, содержащая «\ n» для платформ Unix.
разные операционные системы имеют разные экранирующие символы, такие как \r\n
и \n
и \n\r
и \r
поэтому я пошел в точку net fiddle и попробовал этот код, чтобы проверить, где происходит сбой Environment.NewLine
.
var myString = "this \r\n is \r some \n text \n\r hurray";
var list = myString.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (var item in list){
Console.WriteLine(item);
}
результаты были впечатляющими, но не такими впечатляющими, вот результаты:
this
is some
text
hurray
обратите внимание, что Environment.NewLine
пропущен \r
escape-символ, который используется некоторыми популярными ОС, включая некоторые старые MAC OS.
, поэтому лучшим решением должно быть использование следующего кодасо всеми возможными escape-символами в разных операционных системах:
somestring.Split(new[] { "\r\n", "\r", "\n", "\n\r"}, StringSplitOptions.None);
Это избавит вас от странных сценариев.
Надеюсь, это поможет!
, чтобы узнать больше о том, какие символы используются в качестве escape-символов в различных операционных системах, посетите: Символы новой строки