关于c#:只保留列表中只包含字母的元素

Keep only elements of a list that have only letters

本问题已经有最佳答案,请猛点这里访问。

我有一个List,它包含一些具有非字母字符的元素。例如,我可能有一个根本不包含任何字母的#232353;,或者我可能有一个SomeText,SomeOtherText,并且该元素包含一个逗号,它也不是字母。如何使用LINQ删除这些元素?像这样:

1
MyList = MyList.Where(...)

谢谢。


您可以使用Char.IsLetter检查字符串中的所有字符是否都是字母:

1
MyList = MyList.Where(s => s.All(Char.IsLetter)).ToList();


因为它在List上,所以可以使用RemoveAll方法删除与特定谓词匹配的所有值。

1
MyList.RemoveAll(s => s.Any(c => !Char.IsLetter(c)));