您可以尝试在方法中使用内联三元组Join
:
string.Join("-", string.IsNullOrEmpty(e.Company) ? "fired" : e.Company, e.Name)
编辑(我误读了“fred”因为拼写错误被解雇了)。
正如另一个答案中提到的,扩展方法会清理代码。您将把丑陋的代码移动到不同的地方。
作为扩展方法的替代方法,我会推荐类似以下的方法,以便以后使用更多参数:
public static string ExcludeEmptiesJoin(params string[] args) {
string outValue = string.Empty;
foreach (var arg in args.Where(s => !string.IsNullOrEmpty(s))) {
if (string.IsNullOrEmpty(outValue)) {
outValue = arg;
} else {
outValue = string.Join("-", outValue, arg);
}
}
return outValue;
}
用法:
Console.WriteLine(ExcludeEmptiesJoin("Company", "Fred"));
Console.WriteLine();
Console.WriteLine(ExcludeEmptiesJoin("", "Fred"));
Console.WriteLine();
Console.WriteLine(ExcludeEmptiesJoin("Company", ""));
Console.WriteLine();
Console.WriteLine(ExcludeEmptiesJoin("Company", "", "4/4/1979"));
Console.WriteLine();
Console.WriteLine(ExcludeEmptiesJoin("Company", "Fred", "4/4/1979"));
输出:
公司-Fred
弗雷德
公司
公司-4/4/1979
公司-Fred-4/4/1979