从字典集合值中查找所有数据到另一个字典集合键

Posted

技术标签:

【中文标题】从字典集合值中查找所有数据到另一个字典集合键【英文标题】:find all data from dictionary collection value to another dictionary collection key 【发布时间】:2016-04-26 13:50:56 【问题描述】:

我有字典集

key -> string, value -> class

我还有另一个字典集

key -> string, value -> string

注意:第二个字典集合key -> string, value -> string.Value 是第一个字典集合key -> string, value -> class.Key

所以,我必须根据第二个集合值从第一个字典集合中查找所有数据。

【问题讨论】:

这与 SQL 或 ASP.NET 有什么关系?为什么要标记 2 种语言?要做的就是让你的模糊问题更快结束。 您是否尝试过遍历第二本词典并按每个键搜索第一个中的项目?你卡在哪一部分了? 请编写类的外壳并在您的问题中定义字典,以便我们知道您在说什么。 嗨,欢迎来到 Stack Overflow,这只是我发送给新成员的一条消息,以帮助一些事情。新用户的学习曲线并不陡峭,但了解如何使用堆栈并不总是显而易见的。请花几分钟看看这里 How to Ask 看看这里也很重要 .. minimal reproducible example .. 另外,如果有答案对您有效,请单击答案左侧的勾号,以便将问题标记为已回答,这样可以确保发布该问题的人获得声誉。干杯。 只是为了澄清 - 你真的需要包含与这篇文章相关的代码。没有代码,我们根本无能为力。任何答案都是猜测。 【参考方案1】:
      class MyTest
      
          public int myValue  get; set; 
      

 Main()
      
        Dictionary<string, string> First = new Dictionary<string, string>();
        First.Add("dd", "test");
        First.Add("ss", "test");
        First.Add("tt", "test");
        First.Add("aa", "test");
        First.Add("mm", "test");

        Dictionary<string, MyTest> Second = new Dictionary<string, MyTest>();
        Second.Add("dd", new MyTest()  myValue = 123 );
        Second.Add("oo", new MyTest()  myValue = 123 );
        Second.Add("tt", new MyTest()  myValue = 123 );
        Second.Add("aa", new MyTest()  myValue = 123 );
        Second.Add("rr", new MyTest()  myValue = 123 );

        var Final1 = First.Where(S => Second.Any(T => S.Key.Equals(T.Key)));

        var Final2 = Second.Where(S => First.Any(T => S.Key.Equals(T.Key)));

        Console.WriteLine("\nFirst\n");
        foreach (var item in Final1)
        
            Console.WriteLine(item.Key + "-" + item.Value);
        
        Console.WriteLine("\nSecond\n");
        foreach (var item in Final2)
        
            Console.WriteLine(item.Key + "-" + item.Value.myValue);
        
 

【讨论】:

请在你的回答中解释更多细节【参考方案2】:

根据我对您问题的理解,您希望根据第二个字典值查找第一个字典。

public class Test

    public string MyValue get;set;

Dictionary<string, Test> DictOne = new Dictionary<string, Test>();
Dictionary<string, string> DictTwo = new Dictionary<string, string>();

DictOne.Add("DictOneKeyOne", new Test()  MyValue = "DictOneValueOne"  );
DictTwo.Add("DictTwoKeyOne", "DictOneKeyOne");

Test ValueFromDictOne = DictOne.ContainsKey(DictTwo["DictTwoKeyOne"]) ? DictOne[DictTwo["DictTwoKeyOne"]] : null;

【讨论】:

以上是关于从字典集合值中查找所有数据到另一个字典集合键的主要内容,如果未能解决你的问题,请参考以下文章

python-字典

字典集合的使用

python 字典 与 集合 的特点,及它们背后的散列表

go——字典

python中集合和字典的区别

python字典与集合还有数据类型转换