是這樣的,我有用到一個foreach迴圈,
跑完後理論上應該要跑出B,C,I這樣,
但我卻跑出B,C,I,
所以想請問我該如何修改?
以下是我的程式碼:
foreach (string HEPATITIS in model.HEPATITISS)
{
model.HEPATITIS += HEPATITIS+",";
}
我的方式
model.HEPATITIS = "";
foreach (string HEPATITIS in model.HEPATITISS)
{
if (!string.IsNullOrWhiteSpace(model.HEPATITIS))
model.HEPATITIS += ",";
model.HEPATITIS += HEPATITIS;
}
如果是for迴圈就用 i > 0 判斷,
BTW, 這個命名真的是很有藝術 XD
bool isFirst= true;
foreach (string HEPATITIS in model.HEPATITISS)
{
if(isFirst){
isFirst =false;
model.HEPATITIS += HEPATITIS;
}else
model.HEPATITIS += (","+HEPATITIS);
}
string result = model.MergeHEPATITISS
在model 內寫一個 方法
public string MergeHEPATITISS
{
get{
string res = "";
foreach (string tmp in this.HEPATITISS)
{
if (!string.IsNullOrWhiteSpace(res))
res += ",";
res += tmp;
}
return res;
}
set{}
}
如果是要將字串陣列轉成字串並利用符號分隔,可以考慮使用 string.join
string.Join(',', model.HEPATITISS)
在此案例我推薦使用String.Join method 兩個原因
StringBuilder
https://github.com/Microsoft/referencesource/blob/master/mscorlib/system/string.cs 可增進記憶體效率