c# - 如何检查字符串是否包含无效的文件名字符?

An *_*ack 0 c# string search

我有一个字符串,我想检查它是否包含任何无效的文件名字符。我知道我可以用

 Path.GetInvalidFileNameChars 
Run Code Online (Sandbox Code Playgroud)

获取无效文件名字符数组并循环查看字符串是否包含任何无效字符。但是有没有更简单更短的表达方式?它是 C#。那么有人可以帮忙吗?

Geo*_*uer 6

bool containsInValidFilenameCharacters(string str) {
    return str.Any(Path.GetInvalidFileNameChars().Contains)
}
Run Code Online (Sandbox Code Playgroud)

请注意,这与执行相同

var invalidChars = Path.GetInvalidFileNameChars();
return str.Any(c => invalidChars.Contains(c));
Run Code Online (Sandbox Code Playgroud)

但是由于类型签名Contains与参数委托类型完全匹配,Any我们可以直接传递它,它会进行隐式转换。

  • @Robin 它是 Linq 的一部分。确保您的文件顶部有“使用 System.Linq”。 (2认同)