Linq выбирает строки из списка при выполнении условия и сохраняет индекс - PullRequest
3 голосов
/ 31 января 2012

У меня есть список строк

List<string> lstOne = new List<string>() { "January:1", "February", "March:4"};

И я фильтрую строки, которые содержат: с этим кодом

var withcolumns = lstOne.Find(t => t.Contains(':'));

и я получаю новый список с { "January:1", "March:4"}

Я хочу выбрать в новом списке значения January:1 и March:4, но также сохранить индексы в предыдущем списке, чтобы результат был

"0" "Январь: 1"
"2" "Март: 4"

Я могу быть простым или сложным, но сейчас мой мозг не может решить эту проблему.

Ответы [ 2 ]

11 голосов
/ 31 января 2012
list.Select((item, index) => new { item, index })
    .Where(o => o.item.Contains(':'))
2 голосов
/ 31 января 2012

не уверены, что вы хотите в результате?список строк?или?

но в любом случае ..... с индексом, начинающимся с вашей строки ...

List<string> lstOne = new List<string>() { "January:1", "February", "March:4" };
var list = lstOne.Select((s, i) => i+ " " + s ).Where(s => s.Contains(":")).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...