我試圖在字典中存儲用戶的電影評級。從中獲取數據的文件格式爲無法將值存儲在嵌套字典中
UserID | MovieID |評分|時間戳
他們是製表符分隔值
//Take the first 100 lines from the file and store each line as a array element of text
string[] text = System.IO.File.ReadLines(@File path).Take(100).ToArray();
//extDic[username] - [moviename][rating] is the structure
Dictionary<string,Dictionary<string,double>> extDic=new Dictionary<string,Dictionary<string,double>>();
Dictionary<string, double> movie=new Dictionary<string,double>();
foreach(string s in text)
{
int rating;
string username=s.Split('\t')[0];
string moviename=s.Split('\t')[1];
Int32.TryParse(s.Split('\t')[2], out rating);
movie.Add(moviename,rating);
if (extDic.ContainsKey(username))
{
//Error line
extDic[username].Add(moviename, rating);
}
else
{
extDic.Add(username, movie);
}
movie.Clear();
}
我得到以下錯誤「具有相同鍵的項已被添加」的錯誤行。我明白錯誤是什麼,並試圖通過檢查if語句來解決它。但是這並不能解決問題。
此外,我不知道是否有一個重要的movie.clear()?
我修改了代碼以添加一些額外的驗證步驟:一個用於解析一行('splitted.Length'應該等於3),另一個用於非null'username'和'moviename' ;這兩個都用作鍵,不應該是空字符串或空值。我希望有所幫助。 – Lucian