将 List<string> 转换为 Dictionary<string, string>

时间:2021-05-18 05:34:25

标签: c# list dictionary

虽然我知道将列表转换为字典已经讨论过很多次了,但我找不到解决我遇到的特定问题的方法。

我正在使用 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);

这是我遇到问题的部分,而不是将测试词作为键和输入作为值,这些词会重复自己,所以我最终得到了一个字典,例如 Test1Test1 作为键和值。

我到底做错了什么?据我了解,我在将列表转换为字典时使用的表达式是正确的,但我没有得到我需要的结果。

0 个答案:

没有答案
相关问题