Я не понимаю требования "в одну строку". Стремитесь писать ясный и понятный код, а не способы уместить операцию на как можно меньшем пространстве.
Эд С.
6
С появлением LINQ «однострочные», читаемые и чистые, стали гораздо более распространенными в C # IMO.
Мэтт Грир
5
@Ed S. - Хотя я согласен с тем, что выражение «в одну строку» может быть не лучшим способом выразить это, однострочные утверждения, подобные тому, что предлагает Мэтт Грир, как правило, очень четкие и понятные. Я предполагаю, что он просто хочет избежать использования forцикла, который более утомителен, подвержен ошибкам и неясен.
StriplingWarrior
4
Я не хочу сказать, что однострочники труднее понять, я просто говорю, что это никогда не должно быть требованием. Просто сделайте это наилучшим из возможных способов. Если это окажется в одной строке, отлично, но это не то, что должно определять способ написания кода.
Эд С.
Ответы:
200
List<string> result = names.Split(newchar[]{','}).ToList();
string given="Welcome To Programming";List<string> listItem= given.Split(' ').ToList();//Split according to space in the string and added into the list
//Default delimiter is ,var split =newStringConverter().ConvertTo<List<string>>(names);//You can also have your custom delimiter for e.g. ;var split =newStringConverter().ConvertTo<List<string>>(names,newConverterOptions{Delimiter=';'});
for
цикла, который более утомителен, подвержен ошибкам и неясен.Ответы:
Или даже чище по предложению Дэна:
источник
new char[] { }
часть. Это более читабельно, по крайней мере , для меня .System.LINQ
пространство имен?У
List<T>
него есть конструктор, который принимаетIEnumerable<T>
:источник
Я предпочитаю это, потому что это предотвращает один список элементов с пустым элементом, если ваша исходная строка пуста:
источник
Разделить строку, разделенную символами, и вернуть все непустые элементы.
https://docs.microsoft.com/en-us/dotnet/api/system.string.split?view=netframework-4.8
источник
вывод:
источник
Если у вас уже есть список и вы хотите добавить значения из строки с разделителями, вы можете использовать
AddRange
илиInsertRange
. Например:источник
Используйте пакет Nuget Stringify.Library
источник