gpt4 book ai didi

c# - 如果不为空则格式化字符串

转载 作者:行者123 更新时间:2023-11-30 22:16:15 25 4
gpt4 key购买 nike

我有一种情况需要通过 CSV(制表符分隔)输出信息数据集。

问题是如果列值包含一个值,那么它需要被双引号。

值类型的范围可以从字母数字字符串到 DateTime 格式的值。

想知道是否有比这更简单的方法:

(string.IsNullOrWhiteSpace(evt.Name)?null:string.Format("\"{0}\"", evt.Name))

对于导出为字符串值的每个值。

编辑 2013-07-08 11:06 CST(修改 11:17 CST)

public string QuoteFormat(object val)
{
if(val != null) {
if(val == typeof(string))
val = (val as string).Replace("\"" , "\"\"");

return string.Format("\"{0}\"" , val);
}
return null;
}

最佳答案

你问有没有办法更清楚地表达你的问题。虽然您自己的代码很好并且我们没有发现它有问题,但我建议您使用扩展。

public static class GoldBishopExtensions
{
public static string Transform(this string source, Func<string, string> transform, string fallback = null)
{
return !String.IsNullOrWhiteSpace(source)
? transform(source)
: fallback;
}
}

然后将其用于:

// Return "evt.Name" if String is not null or whitespaces
// return null otherwise
evt.Name.Transform(name => String.Format("\"{0}\"", name));

或者:

// Return ("evt.Name") if String is not null or whitespaces
// return (No Value) otherwise
evt.Name.Transform(name => String.Format("\"{0}\"", name), "No Value");

但如评论中所述,您真的不需要它,因为您的代码本身就很好。

编辑:对于您自己的具体问题,您的扩展可以是:

public static class GoldBishopExtensions
{
public static string Quote(this string source, string fallback = null)
{
return !String.IsNullOrWhiteSpace(source)
? String.Format("\"{0}\"", source)
: fallback;
}
}

evt.Name.Quote();

关于c# - 如果不为空则格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17530876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com