来自变量 c# 的插值字符串
Interpolation string from variable c#
我正在尝试在 C# 中插入由两个字符串组合而成的字符串。我在 VS 2015 中有以下代码:
DateTime date = DateTime.Now;
string username = "abc";
string mask = "{date:yy}/{username}";
我想要的结果是:
18/abc
我知道我可以像这样插入它:
mask = $"{date:yy}/{username}"
但是掩码也是一个输入。所以我需要类似的东西:
string result = $"{mask}"
但结果是:
"{date:yy}/{username}"
掩码实际上是从数据库中下载的,在每种情况下信息的顺序可能不同。
我需要将整个掩码存储在 db 中,并且只在代码中对其进行补充。我不能使用像
这样的 String.Replace() 方法
mask.Replace({date}, date.ToString())
因为我需要添加一些格式,例如:yy、:yyyy、:dd 等
有没有可能做到这一点?
string mask = string.Format("{0:yy}/{1}", date, username);
string mask = $"{date:yy}/{username}";
您可以使用 string.Format()
:
string mask = GetMaskFromDB(); //assume it returns "{0}/{1:yy}"
string username = "abc";
DateTime dt = DateTime.Now;
var result = string.Format(mask, username, dt);
Result: "abc/18"
我正在尝试在 C# 中插入由两个字符串组合而成的字符串。我在 VS 2015 中有以下代码:
DateTime date = DateTime.Now;
string username = "abc";
string mask = "{date:yy}/{username}";
我想要的结果是:
18/abc
我知道我可以像这样插入它:
mask = $"{date:yy}/{username}"
但是掩码也是一个输入。所以我需要类似的东西:
string result = $"{mask}"
但结果是:
"{date:yy}/{username}"
掩码实际上是从数据库中下载的,在每种情况下信息的顺序可能不同。 我需要将整个掩码存储在 db 中,并且只在代码中对其进行补充。我不能使用像
这样的 String.Replace() 方法mask.Replace({date}, date.ToString())
因为我需要添加一些格式,例如:yy、:yyyy、:dd 等
有没有可能做到这一点?
string mask = string.Format("{0:yy}/{1}", date, username);
string mask = $"{date:yy}/{username}";
您可以使用 string.Format()
:
string mask = GetMaskFromDB(); //assume it returns "{0}/{1:yy}"
string username = "abc";
DateTime dt = DateTime.Now;
var result = string.Format(mask, username, dt);
Result: "abc/18"