Jak*_*net 1 c# string-interpolation
我必须编写一段漂亮的代码,但我对以下语法不满意.
有没有更好的方法来编写这个字符串插值?
var details = $"{((currentProfile.FirstName != newProfile.FirstName) ? $"{Environment.NewLine}First Name : {newProfile.FirstName}" : string.Empty)}" +
$"{((currentProfile.LastName != newProfile.LastName) ? $"{Environment.NewLine}Last Name : {newProfile.LastName}" : string.Empty)}" +
$"{((currentProfile.MiddleName != newProfile.MiddleName) ? $"{Environment.NewLine}Middle Name : {newProfile.MiddleName}" : string.Empty)}" +
$"{((currentProfile.Suffix != newProfile.Suffix) ? $"{Environment.NewLine}Suffix : {newProfile.Suffix}" : string.Empty)}" +
$"{((currentProfile.AddressLine1 != newProfile.AddressLine1) ? $"{Environment.NewLine}Address Line 1 : {newProfile.AddressLine1}" : string.Empty)}" +
$"{((currentProfile.AddressLine2 != newProfile.AddressLine2) ? $"{Environment.NewLine}Address Line 2 : {newProfile.AddressLine2}" : string.Empty)}" +
$"{((currentProfile.City != newProfile.City) ? $"{Environment.NewLine}City : {newProfile.City}" : string.Empty)}"+
$"{((currentProfile.ProvinceCode != newProfile.ProvinceCode) ? $"{Environment.NewLine}State : {newProfile.ProvinceCode}" : string.Empty)}" +
$"{((currentProfile.ZipCode != newProfile.ZipCode) ? $"{Environment.NewLine}Zip Code : {newProfile.ZipCode}" : string.Empty)}" +
$"{((currentProfile.CountryCode != newProfile.CountryCode) ? $"{Environment.NewLine}Country : {newProfile.CountryCode}" : string.Empty)}" +
$"{((currentProfile.Phone != newProfile.Phone) ? $"{Environment.NewLine}Phone : {newProfile.Phone}" : string.Empty)}";
Run Code Online (Sandbox Code Playgroud)
我个人可能会使用类似的东西:
var sb = new StringBuilder();
AppendIfDifferent(sb, currentProfile.FirstName, newProfile.FirstName, "First Name");
AppendIfDifferent(sb, currentProfile.LastName, newProfile.LastName, "Last Name");
// ...
string s = sb.ToString();
Run Code Online (Sandbox Code Playgroud)
有:
static void AppendIfDifferent(StringBuilder sb, string newValue,
string oldValue, string label)
{
if(newValue != oldValue)
{
sb.AppendLine().Append(label).Append(" : ").Append(newValue);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |