关键看黄色背景处的代码,原来的程序是 valuename.clear();
您知道会出现什么情况吗? 为什么呢?
valuename 是引用类型对象,industryList.Add之后 valuename.clear ,industryList的value为空。
而valuename 重新实例化之后,就是一个新对象
string keyName = string .Empty; List < string > valueName = new List < string > (); foreach (DataRow row in dt.Rows) { string tempkey = row[ " Name " ].ToString(); string tempvalue = row[ " SonName " ].ToString(); if (keyName != tempkey && valueName.Count > 0 ) { industryList.Add(keyName, valueName);valueName = new List < string > (); } keyName = tempkey; valueName.Add(tempvalue); } if (valueName.Count > 0 ) { industryList.Add(keyName, valueName); }