比较两个词典c#并获得相同的键

时间:2017-06-19 09:43:27

标签: c# dictionary word

我有两本词典。一个是实际的字典(用于键的单词和值的定义),另一个是在Word文件中存储在seconde字典中的单词。

//first dictionary
    var xdoc = XDocument.Load("dicoFrancais.xml");
            var dico = xdoc.Root.Elements()
                               .ToDictionary(a => (string)a.Attribute("nom"),
                                             a => (string)a.Element("DEFINITION"));

//second dictionary
Dictionary<string, string> motRap = new Dictionary<string, string>();
        Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();
        Document document = application.Documents.Open("monfichiertxt.docx");


        int count = document.Words.Count;
        for (int i = 1; i <= count; i++)
        {                
            string text = document.Words[i].Text;                
            motRap.Add(text, "blabla");                
        }
        // Close word.
        application.Quit();

我想比较两个字典的键并使用第一个字典的值获得相同的键,所以我可以拥有第三个字典,其中包含键和值。 我试过这个: var intersectMembers = dico.Keys.Intersect(motRap.Keys) .ToDictionary(t => t, t => dico[t]); 但它不起作用。 有谁可以帮助我吗, 谢谢。 (对不起,我的英语不是很好)

1 个答案:

答案 0 :(得分:0)

  

我想比较两个词典的键,并使用第一个词典的值获得相同的键。

var thirdDictionary = dico
  .Where(keyValue => motRap.Keys.Contains(keyValue.Key))
  .ToDictionary(keyValue => keyValue.Key, keyValue => keyValue.Value);