在使用Dictionary时,遇到一个bug。具体如下
定义了一个Dictionary Category<string,List<string>>;
填充时Category[key1].Add(temp2)时,key2、key3也被添加了temp2。
谁能帮帮我啊!!万分感谢!!!bugDictionary
定义了一个Dictionary Category<string,List<string>>;
填充时Category[key1].Add(temp2)时,key2、key3也被添加了temp2。
谁能帮帮我啊!!万分感谢!!!bugDictionary
foreach (DataRow row in table1.Rows)
{
List<string> temp = new List<string>();
object[] obj = row.ItemArray;
string[] cells = new string[row.ItemArray.Length];
for (int i = 0; i < row.ItemArray.Length; i++)
{
cells[i] = obj[i].ToString();
}
temp.Add(cells[0]);
if (cells[0].Contains(',') || cells[0] == null)
{
continue;
}
if (cells[1] != null && !cells[0].Contains(','))//
{
for (int i = 1; i <= cells.Length; i++)
{
if (cells[i] == null || cells[i] == "" || cells[i].Contains(','))
{
break;
}
if (Category.Keys.Contains(cells[i]))
{
if (Category[cells[i].ToString()].Contains(cells[0].ToString()) == false || Category[cells[i].ToString()] != null)
{
//MessageBox.Show(Category[cells[i]].ToArray().ToString());
Category[cells[i].ToString()].Add(cells[0].ToString());
}
}
else
{
Category.Add(cells[i], temp);
}
}
}
这么多IF 如果数据都在temp中 估计也就只执行了 Category.Add(cells[i], temp); 这句
cell[i]只有一个,
但Category.Add(cells[i], temp)给多个添加;
{
Category[cells[i].ToString()].Add(cells[0].ToString());
} 这不是所有的都添加吗
遍历一个Datatable中的每一行row,
row的第一个单元格cell[0]是该行的标题。
每行的其他单元格包含该标题的类别信息;
需要统计类别所包含的标题,将其放到一个Dictionary<string,List<string>>中,其中key为类别,value为标题。