虽然我知道将列表转换为字典已经讨论过很多次了,但我找不到解决我遇到的特定问题的方法。
我正在使用 DocX/Xceed 来编辑 Word 文档 (.docx)。我决定使用文档中的示例来替换文档中的单词,所述示例使用 Dictionary<string, string>
,其中键是要替换的单词和要替换的单词的值。就我而言,我想使用表单中 40 多个文本框的输入来替换单词,因此我制作了一个临时列表,在其中存储要替换的单词和文本框的输入,为此我使用以下方法:
List<string> dictlist = new List<string>();
foreach (Control tb in grpBoxTxt.Controls)
{
if (tb is TextBox)
{
dictlist.Add("Test" + a.ToString());
dictlist.Add(tb.Text.ToString());
a++;
}
}
这给了我一个列表,其中包含要替换的单词(在本例中为 Test 后跟一个数字)和来自文本框的输入,从这里我将列表转换为我之前定义的字典:
private static Dictionary<string, string> _replacePatterns = new Dictionary<string, string>();
_replacePatterns = dictlist.Distinct().ToDictionary(x => x, y => y);
这是我遇到问题的部分,而不是将测试词作为键和输入作为值,这些词会重复自己,所以我最终得到了一个字典,例如 Test1和 Test1 作为键和值。
我到底做错了什么?据我了解,我在将列表转换为字典时使用的表达式是正确的,但我没有得到我需要的结果。