下面我有這個重複的代碼,我假定這是可以合併,但如果你注意到各詞典是不同的通用字典:如何讓這個重複的代碼更優雅?
dictionary1的類型是
Dictionary<int, ContinuousIntegrationSolution>
而dictionary2的類型爲:
Dictionary<int, BugTracker>
DataTable dt = GetDataTable("CI");
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
int id = Convert.ToInt32(dr["id"]);
string name = dr["name"].ToString();
_dictionary1[id] = new ContinuousIntegrationSolution(){Name = name};
}
DataTable dt1 = GetDataTable("Bug_Tracking");
for (int i = 0; i < dt1.Rows.Count; i++)
{
DataRow dr = dt1.Rows[i];
int id = Convert.ToInt32(dr["id"]);
string name = dr["name"].ToString();
_dictionary2[id] = new BugTracker() { Name = name };
}
DataTable dt2 = GetDataTable("SDLC");
for (int i = 0; i < dt2.Rows.Count; i++)
{
DataRow dr = dt2.Rows[i];
int id = Convert.ToInt32(dr["id"]);
string name = dr["name"].ToString();
_dictionary3[id] = new SDLCProcess() { Name = name };
}
注:我有固定的是下面提及的幾個錯別字。
在你的代碼中有bug嗎?你有3個數據表(dt,dt1和dt2),但只有2個字典_dictionary1和_dictionary2? – 2009-11-22 19:24:02
我們是否允許更改類級別,以便ContinuousIntegrationSolution,BugTracker和SDLCProcess具有包含名稱成員的公共基類或接口? – 2009-11-22 19:28:34
另外dt沒有在代碼片段的範圍內定義。 – 2009-11-22 19:31:07