我以前从来没有偶然发现过这个问题,但我现在已经感到惊讶,因为我找不到一个非常简单的方法来转换IEnumerable<char>为a string.
我能想到的最好的方法是string str = new string(myEnumerable.ToArray());,但是,对我来说,似乎这会创造一个新的char[],然后string从中创造一个新的,这看起来很昂贵.
我认为这将是.NET框架内置的常用功能.有更简单的方法吗?
对于那些感兴趣的人,我想使用它的原因是使用LINQ来过滤字符串:
string allowedString = new string(inputString.Where(c => allowedChars.Contains(c)).ToArray());
Run Code Online (Sandbox Code Playgroud) 我已经写了这个小方法来实现subj中的目标,但是,有更高效(更简单)的方法吗?我希望这可以帮助那些像我一样搜索这个的人.
var fileName = new System.Text.StringBuilder();
fileName.Append("*Bad/\ :, Filename,? ");
// get rid of invalid chars
while (fileName.ToString().IndexOfAny(System.IO.Path.GetInvalidFileNameChars()) > -1)
{
fileName = fileName.Remove(fileName.ToString().IndexOfAny(System.IO.Path.GetInvalidFileNameChars()), 1);
}
Run Code Online (Sandbox Code Playgroud)
?