从List中删除特定的字符串值

Ari*_*ule 2 c# list

我有一个字符串值列表,其中一些值包含前面的xxx或XXX.

xxxRed
xxxYellow
xxxxCareful with that axe Eugene!
xxxxxxdedicum aceasta frumoasa Melodia
xxxxLeaders
xxxxWorking Around - titles
XXXXXNothing To Fear
xxxxAvoiding standards
xxxFirst Aid

List<string> lstTitles = new List<string>();
Run Code Online (Sandbox Code Playgroud)

这就是我尝试过的

for (int i=0; i < lstTitles.Count; i++)
            {
                string title = lstTitles[i].ToLower().Trim();
                if (title[0] == 'x')
                {
                    lstTitles.Remove(lstTitles[i]);

                }
            }
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是只删除了一些值但不是全部.

是否有更好的方法来消除这些价值观?

I4V*_*I4V 10

使用RemoveAll方法

lstTitles.RemoveAll(s => s[0] == 'x' || s[0] == 'X');
Run Code Online (Sandbox Code Playgroud)

并且您可能想要使用StartsWith而不是比较第一个char.

lstTitles.RemoveAll(s => s.StartsWith("x",StringComparison.InvariantCultureIgnoreCase));
Run Code Online (Sandbox Code Playgroud)

  • `|| s [0] =='X'`...如果字符串项为null或为空,则会失败. (2认同)