我正在尝试对列表和计数唯一实例做一些非常具体的事情,然后将其保存在文件中的新行上。
本质上,我有一个带有一组列的列表视图,我想遍历整个列表,并保存每个唯一项目的计数。
例如,像这样的列表;
111
222
111
333
333
333
最终将被写入文件:
111:2
222:1
333:3
我不需要它以任何特定的顺序排列,只要我有这些价值观。
到目前为止,我有这个;
string fileName = Application.StartupPath + @"\txn_" +
TerminalConfig.CreateSafSig() + ".saf";
Dictionary<string, int> products = new Dictionary<string, int>();
List<string> codes = new List<string>();
foreach (ListViewItem item in BasketList.Items)
{
codes.Add(item.SubItems[3].Text);
}
String[] items = codes.ToArray();
foreach (String code in items)
{
if (products.ContainsKey(code) != true)
{
products.Add(code, 1);
}
else
{
products[code] += 1;
}
}
foreach (var entry in products)
{
File.WriteAllText(fileName, string.Format("{0}:{1}",entry.Key,entry.Value));
}
但是它保存的文件只给了我最后一行。在上面的例子中,它只会显示333:3
我很确定我写得对,但我正在努力找出哪里出错了。