Как обрезать конец из списка - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь удалить? с конца слова в списке, используя TrimEnd, если есть лучший способ, чем TrimEnd, я возьму его.

Я пробовал Trim и Remove. Список .Split(' ') из строки, заканчивающейся на «?» соединены до последнего слова.

    public static List<String> CleanThing(List<string> dirtyList)
    {
        List<string> cleanList = new List<string>(); 
       // cleanList = 
       /*  dirtyList.ForEach(delegate(string e)
       e = e.TrimEnd('?')
       =*/
        Console.WriteLine("\nThe # of Removals is: " + dirtyList.RemoveAll(x => x == "What" || x == "?" || x == "is") + "\n");

        dirtyList.ForEach(delegate(string e){               
        e = e.TrimEnd('?');
        Console.WriteLine(e);
        });

        cleanList = dirtyList;

        return cleanList;
    }
}

Возвращенный список имеет "два?" однако Console.WriteLine(e) отображает "два"

Ответы [ 3 ]

1 голос
/ 23 мая 2019

Я вижу пару решений LINQ, опубликованных здесь.

Если вы представляете решение, отличное от LINQ, одним из подходов может быть использование цикла for:

for (int i = 0; i < dirtyList.Count; i++) {
    dirtyList[i] = dirtyList[i].TrimEnd('?');
}

Это происходитчерез каждый элемент в List, заменяя существующее значение на TrimEnd 'd one.

В качестве альтернативы, если вы хотите добавить очищенное значение непосредственно к cleanList:

for (int i = 0; i < dirtyList.Count; i++) {
    cleanList.Add(dirtyList[i].TrimEnd('?'));
}

При добавлении непосредственно к cleanList вы также можете использовать foreach:

foreach (string item in dirtyList) {
    cleanList.Add(item.TrimEnd('?'));
}
1 голос
/ 23 мая 2019

Вы переназначаете переменную e, которая создаст новый объект, e = e.TrimEnd('?'), Вы не будете обновлять объект в списке, потому что он все еще указывает на старую ссылку,

Вместо этого просто выберите то, что выхочу в свой чистый список:

cleanList = dirtyList.Select(x => x.TrimEnd('?')).ToList()
0 голосов
/ 23 мая 2019
trimed = mylist.Select(s => s.TrimEnd('.')).ToList()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...