Перебирать список и показывать только те элементы, которые содержат указанное c слово - PullRequest
0 голосов
/ 20 апреля 2020

Я бы хотел перебрать список и показать только те элементы, которые содержат указанное c слово. Например, у меня есть List<string> {"one","two",three",four","one"}. Я хотел бы показать только: "one, one".

Вот что у меня есть:

string strnumbers = "";
foreach (var v in numbers)
{

        strnumbers += v + ",";

}

Ответы [ 3 ]

6 голосов
/ 20 апреля 2020

Использование LINQ Where и string.Join:

string strnumbers = string.Join(", ", numbers.Where(number => number == "one"));
0 голосов
/ 20 апреля 2020

Я просто оставлю это здесь в качестве альтернативы нотации @Johnathan barcley, которая также подчеркивает игнорирование обсадной трубы.

var source = new string[] {"one","two","three","four","one"};

var filtered = from number in numbers
               where number.Contains("one", StringComparison.OrdinalIgnoreCase)
               select number

string result = string.Join(",", filtered);
0 голосов
/ 20 апреля 2020

Если вы хотите сделать это с несколькими словами, возможно, стоит использовать GroupBy:

var list = new List<string> { "one", "two", "three", "four", "one", "two" };

var groups = list
    .GroupBy(x => x)
    .ToDictionary(grp => grp.Key, grp => string.Join(", ", grp));

Console.WriteLine(groups["one"]);
// one, one

Console.WriteLine(groups["two"]);
// two, two
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...