我有一个经常更新的文本文件。
文本文件的格式如下:1. haha: $44.00, 2. jk: $44.00, 3. jk: $44.00, 4. asdfasdf: $22222.00, 5. asdfasdf: $3333.00,
我如何将这些保存到一个数组中,以便以后可以调用它们并将它们一起添加?我基本上需要检查以查看通过的名称是否与先前通过的名称相同。如果是这样,我需要将金额加在一起。
while(!sR.EndOfStream)
{
string line = sR.ReadLine();
string split = line.Split('$', ',')[1];
string nameSplit = line.Split('.', ':')[1];
List<string> namesArray = new List<string>();
namesArray.Add(nameSplit);
MessageBox.Show(nameSplit + " " + split);
}
sR.Close();
编辑:
decimal n = Convert.ToDecimal(split);
if (names.ContainsKey(nameSplit))
{
names[nameSplit] += n;
Console.WriteLine("Hoozah!");
}
else
{
names.Add(nameSplit, n);
Console.WriteLine("Failure");
}
答案 0 :(得分:0)
我会选择创建Dictionary
。您可以检查名称是否已存在,如果不存在,则可以添加项目。否则你添加两个值。
Dictionary<string, decimal> names = new Dictionary<string, decimal>();
// inside the loop
decimal n = Convert.ToDecimal(split);
if (names.ContainsKey(nameSplit))
{
names[nameSplit] += n;
}
else
{
names.Add(nameSplit, n);
}
如果您打算保留所有值而不是仅保留总和,则可以使用List<decimal>
而不是decimal
执行相同的操作。
您将(Add
)名称添加到词典中。下次,当名称已存在(ContainsKey
)时,它会将值+=
)添加到n
)。