具有空值C#的String.Format

use*_*641 2 .net c# c#-4.0

我想格式化一个地址.这是我的代码:

address = String.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}",
                        postalAddress.Line1,
                        postalAddress.Line2,
                        postalAddress.Line3,
                        postalAddress.Line4,
                        postalAddress.Suburb,
                        postalAddress.StateCode,
                        postalAddress.Pcode);
Run Code Online (Sandbox Code Playgroud)

不幸的是,116 Knox St, , , , Watson, ACT, 2602当Line2,Line3,Line4为空时会产生这种情况.如何处理空值以获得结果116 Knox St, Watson, ACT, 2602

McA*_*den 12

看起来这更简洁地完成了您的目的.

string[] data = new[] { 
    postalAddress.Line1, 
    postalAddress.Line2, 
    postalAddress.Line3, 
    postalAddress.Line4, 
    postalAddress.Suburb, 
    postalAddress.StateCode, 
    postalAddress.Pcode 
};

string address = string.Join(", ", 
                             data.Where(e => !string.IsNullOrWhiteSpace(e));
Run Code Online (Sandbox Code Playgroud)