字符串.使用条件间距的格式效率
本文关键字:格式 效率 条件 字符串 | 更新日期: 2023-09-27 18:06:01
设置全名格式最快的方法是什么?中间名和后缀可能为空或空?
string fullname = string.Format("{0} {1} {2} {3}",
FName,
MI,
LName,
Suffix);
这样做的问题是,如果MI或后缀为空,那么我有两个空格。
我可以用这个做第二遍:
fullname = fullname.Replace(" ", " ");
或者我可以像这样创建字符串:
string fullname = string.Format("{0}{1} {2}{3}",
FName,
string.IsNullOrEmpty(MI) ? "" : " " + MI,
LName,
string.IsNullOrEmpty(Suffix) ? "" : " " + Suffix);
有更好的选择吗?最快是最重要的。
我会这样做:
var parts = new[] { FName, MI, LName, Suffix };
string fullName = string.Join(" ", parts.Where(s => !string.IsNullOrWhiteSpace(s)));
这可能不是最快的解决方案,但它很清楚发生了什么。
首先检查null或empty,然后为它们分别编写专门的代码。我希望直接在char[]
缓冲区上工作比string.Format
或StringBuilder更快。
但是我发现格式化名字是应用程序的性能瓶颈,这很奇怪。即使格式化几百万个名字也不应该花那么长时间。