Нужна небольшая помощь с запросом LINQ. У меня есть строка, состоящая из компонентов и подкомпонентов. У меня также есть запрос LINQ, который красиво разбивает компоненты и подкомпоненты на вложенные общие списки.
List<List<string>> fields = (from a in text.Split(new char[] { '\r' })
select a.Split(new char[] { ',' }).ToList()).ToList();
Теперь у меня есть несколько подкомпонентов, у которых есть собственные подкомпоненты, разделенные знаком «-». Как я могу изменить приведенный выше код, чтобы разрешить третий вложенный список с использованием третьего разделителя. Пробовал несколько вариантов LINQ, но не смог заставить его работать правильно. У меня есть очень базовые знания LINQ. Заранее спасибо.
Пример:
component1,component2,component3.1-component3.2-component3.3,component4
component1,component2,component3,component4.1-component4.2-component4.3,component5,component6.1-component6.2
Пожалуйста, опубликуйте примеры входных значений для вашего String text
.
Когда у вас есть 3 уровня вложенных списков, вы, вероятно, делаете что-то не так.
Вы можете сделать это с помощью следующего запроса Linq
var fields = text.Split('\r')
.Select(a => a.Split(',')
.Select(b => b.Split('-')
.ToList())
.ToList())
.ToList();
Или в синтаксисе запроса
var fields = (from a in text.Split('\r')
select (from b in a.Split(',')
select b.Split('-').ToList())
.ToList())
.ToList();
Обратите внимание, что вам не нужно создавать массивы для метода Split
, поскольку он определен как аргумент params
.
Дайте определение «подкомпонентам».