【发布时间】:2023-03-21 12:01:01
【问题描述】:
我有一个
以下是我的列表的键和值:
鲁格:9
汉堡:9
乐:21
鸽子:21
汉堡:21
汉堡包:25
双倍:30
动物:31
款式:31
该:43
原文:43
汉堡:44
这是我想要实现的输出:
鲁格汉堡
鸽子汉堡
汉堡
双动物风
原始汉堡
为了实现这一点,首先我创建了一个包含此键值对的列表。并遍历每个项目并尝试找到接近的值,将它们分配给新的键值对并删除该索引。但这不能正常工作。到目前为止的代码是这样的:
for (int i = 0; i < wordslist.Count; i++)
{
for (int j = 0; j < wordslist.Count; j++)
{
if (wordslist[i].Value <= wordslist[j].Value + 3 && wordslist[i].Value >= wordslist[j].Value - 3)
{
wordslist.Add(
new KeyValuePair<string, int>(wordslist[i].Key + " " + wordslist[j].Key, wordslist[i].Value)
);
wordslist.RemoveAt(j);
}
}
wordslist.RemoveAt(i);
}
这不起作用并产生重复的结果,如下所示:
鸽子:21
款式:30
汉堡:30
双双动物:30
汉堡 汉堡:31
Original Original The Original Burger 原创汉堡:42
是否有任何算法可以遍历这些项目并通过合并具有接近值的键并将每个项目添加到列表来构造字符串?
【问题讨论】:
-
请以适当的结构显示数据,以便可以使用您提供的代码运行它,minimal reproducible example。这样人们就可以更轻松地帮助您获得正确的输出,而无需转录文本图片。
-
感谢反馈,我这里有点新手,想学习一下栈溢出的动态
标签: c# .net dictionary key-value