リストを使用してかなり具体的なことを行い、一意のインスタンスを数えて、それをファイルの新しい行に保存しようとしています。
基本的に、一連の列を含むリストビューがあり、リスト全体をループして、一意の各アイテムの数を保存したいと考えています。
例、そのようなリスト;
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
私はそれを正しく書いたと確信していましたが、どこが間違っているのかを見つけるのに苦労しています。