今天想說來試看看二維泛型的應用,本來宣告之後都還沒問題,但是到印出的時候...
private void button1_Click(object sender, EventArgs e)
{
List<List<string>> SaveMonth = new List<List<string>>();
List<string> Month = new List<string>();
foreach (DataRow dr in dt.Rows)
{
int point = 0;
Month.Clear();
for (int i = 0; i < dr["ItemRemark"].ToString().Trim(' ').Length; i++)
{
if (dr["ItemRemark"].ToString()[i] == '【')
{
point = i;
}
if (dr["ItemRemark"].ToString()[i] == '】')
{
Month.Add(dr["ItemRemark"].ToString().Substring(point + 1, i - point - 1));
}
}
SaveMonth.Add(Month);
}
}
結果SaveMonth的內容全都一樣...,瞬間傻掉了,後來設置了中斷點,一次一次看,才發現只要Month有變動,SaveMonth的內容也一起跟著變動,思考過後才想到,我這樣子寫,那每一個放入的陣列都是同一個,難怪會一起改變,如果要將個別的內容存入SaveMonth,就要每個陣列都是新的。
SaveMonth.Add(Month) 改成 SaveMonth.Add(new List<string>(Month))
這樣子就可以正常了。