假设我有这样的对象
public class Example
{
public List<Children> Children {get; set;}
}
public class Children
{
public string Id {get; set;}
public List<Element> {get; set;}
}
public class Element
{
public string Id {get; set;}
}
所以我基本上是在做
var result1 = example.Children.where(x => x.Children.Any(y => y.Elements.Where(z => z.Id == MyId)));
var actualRes = result1.Elements.Where(x => x.Id = MyId).FirstOrDefault();
但这似乎效率很低。任何想法如何正确地做到这一点?
谢谢!
您的代码无法编译,并且有一些错误。您可以使用SelectMany
:
var actualRes = example.Children
.SelectMany(x => x.Elements)
.FirstOrDefault(x => x.Id == MyId);
带有预填充示例的代码:
Example example = new(){
Children = new()
};
for(int i=0; i < 10; i++){
Children c = new(){
Id = i.ToString(),
Elements = new()
};
example.Children.Add(c);
for(int j=0; j < 10; j++){
Element e = new(){
Id=(10*i+j).ToString()
};
c.Elements.Add(e);
}
}
string MyId="23";
var result1 = example.Children
.SelectMany(x => x.Elements)
.FirstOrDefault(x => x.Id == MyId);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句