Разделить список строк LINQ - PullRequest
0 голосов
/ 26 января 2012

Я считаю, что это может быть еще один простой способ для вас, мастеров LINQ.

У меня есть таблица с полем, которое состоит из строк, разделенных знаком "#".После того, как я выбрал поле с помощью LINQ, как я могу разбить каждую из строк в отдельный список?Мой список строк выглядит так:

#A#B#C#D#G#F

Я использовал простой запрос LINQ для доступа к этому:

from x in Special_texts
where x.Name.Equals("ExceptionList")
select x.Content

В конце мой список должен содержать:

A
B
C
D
G
F

Спасибо заранее.

Ответы [ 2 ]

6 голосов
/ 26 января 2012

Предполагая, что вы хотите выводить одиночный список:

var list = Special_texts.Where(x=> x.Name.Equals("ExceptionList"))
                        .Select(x=> x.Content)
                        .AsEnumerable()
                        .Select(x=> x.Split(new [] {'#'}, StringSplitOptions.RemoveEmptyEntries))
                        .SelectMany(x=> x)
                        .ToList();

В качестве альтернативы, если вы хотите список списков (по одному для каждого элемента в Special_texts):

var list = Special_texts.Where(x=> x.Name.Equals("ExceptionList"))
                        .Select(x=> x.Content)
                        .AsEnumerable() 
                        .Select(x=> x.Split(new [] {'#'}, StringSplitOptions.RemoveEmptyEntries).ToList())
                        .ToList();
2 голосов
/ 26 января 2012
from x in Special_texts
where x.Name.Equals("ExceptionList")
select x.Content.Split('#').ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...