我目前需要创建类似的字典:
public Dictionary<MyFirstObject, List<MySecondObject>> _reference { get; set; }
这两个对象存储在此过程中需要匹配的数据。这就是我使用词典的原因。对象看起来像这样:
public class MyFirstObject
{
public string _element1 ;
public MyThirdObject _element2;
public MyFirstObject(string element1, MyThirdObject element2)
{
_element1 = element1;
_element2 = element2;
}
}
public class MySecondObject
{
public string _element3;
public string _element4;
public string _element5;
public MySecondObject(string element3, string element4, string element5)
{
_element3 = element3;
_element4 = element4;
_element5 = element5;
}
}
我希望得到包含一些数据的“ MyFirstObject ”,例如我成功找到“ _element1 ”,我得到了相关的“< strong> MyFirstObject “此请求:
MyFirstObject mfo = _reference.FirstOrDefault(z => z.Key._element1 == "mySearch").Key
此代码有效!我认为我可以很容易地找到_element2而没有问题。 现在,我想对“ Dictionary.Value ”做同样的事情,例如找到“ _element3 ”。
我试过这段代码:
MyFirstObject mfo = _reference.FirstOrDefault(x => x.Value.FirstOrDefault(z => z._element3 == "mySearch")).Key;
我最后使用了“ .Key ”,因为我想获得此请求的相对“ MyFirstObject ”。但是这个请求不起作用。
你可以帮我成功吗?
由于
编辑:错误消息是:“无法将类型'MySecondObject'隐式转换为'bool'”
答案 0 :(得分:1)
var result = _reference.FirstOrDefault(x =>
x.Value.Any(z => z._element3 == "mySearch"));
if (result.Key != null)
MyFirstObject mfo = result.Key;