我正在为Windows Phone 8制作一个应用程序,让用户可以添加鱼类和角度。然后,他们从列表选择器中选择要增加的那个,并可以单击并添加或减去按钮以增加其值。类型存储在字典中。我正在尝试有一个摘要页面,按降序列出鱼和/或角。我尝试过的所有内容都只显示重复的数据。 例如鱼的类型是角膜白斑,用户点击它显示的+ 3倍
Walleye1
Walleye2
Walleye3
而不仅仅是
Walleye3
到目前为止,这是我的代码
Dictionary<string, int> FishListDic = new Dictionary<string,int>();
Dictionary<string, int> AngularListDic = new Dictionary<string,int>();
StringBuilder longlines = new StringBuilder();
private void FishAdd_Click(object sender, RoutedEventArgs e)
{
if (FishListDic.ContainsKey(FishName.Text))
{
MessageBox.Show("Fish is already in the list");
}
else
{
FishListDic.Add(FishName.Text, 0);
Dictionary<string, int>.KeyCollection keyColl = FishListDic.Keys;
FishList.Items.Clear();
foreach (string s in keyColl)
{
FishList.Items.Add(s);
}
}
}
private void FishIncrement_Click(object sender, RoutedEventArgs e)
{
string tempfishname;
tempfishname = FishList.SelectedItem.ToString();
// FishListDic[tempfishname] = ;
int temp = fishcount;
if (!FishListDic.ContainsKey(FishList.SelectedItem.ToString()))
{
FishListDic.Add(FishList.SelectedItem.ToString(), 0);
}
FishListDic[FishList.SelectedItem.ToString()]++;
foreach (KeyValuePair<string, int> kvp in FishListDic)
{
longlines.Append(kvp.Key.ToString() + kvp.Value.ToString() + '\n');
}
Summary_Fish.Text = longlines.ToString();
}
我很确定问题是stringbuilder追加,但我现在想不出任何其他选项。我也想将它添加到数据透视表页面上的文本块中。上面的代码只处理鱼类类型,所以生病只是重复的角度
答案 0 :(得分:0)
你有这样的结果:
foreach (KeyValuePair<string, int> kvp in FishListDic)
{
longlines.Append(kvp.Key.ToString() + kvp.Value.ToString() + '\n');
}
例如:
让我们一步一步地查看字符串中的更改: - string.Empty
Walleye1
Walleye1 Walleye2
依旧......
您正在累积longlines
,但为什么需要它呢?
将longlines
移至功能正文FishIncrement_Click
。所以每次鱼增量都会成为一个新的StringBuilder。
p.s。:只有两个评论,也许对您有用:
FishList.SelectedItem.ToString()
替换为tempfishname
,则您的代码会变得更加清晰。 AppendLine
方法。