请通过Linq表达我的帮助:
我有嵌套对象和列表,这就是主对象层次结构的样子(每个破折号都是子类的属性):
Folder
-name
-List<Subfolder> Subfolders
-name
-List<Document> Documents
-name
-key
拥有这个对象层次结构,我有一个文档名称,我想搜索它并返回其父文件夹(子文件夹)
示例:
Folder
-name: Customer
-List<Subfolder> Subfolders
-name: Personal
-List<Document> Documents
-name: Resume
-key : 1
如果我说:“恢复”,linq表达式应该返回我:子文件夹“Personal”(对象)。
请帮助我,因为有两个嵌套的列表我遇到了麻烦,其中一个很容易。
提前致谢。
答案 0 :(得分:14)
folders
.SelectMany(s => s.SubFolders)
.FirstOrDefault(s => s.Documents.Any(d => d.Name == "Resume"));
我从这里开始拍摄,但我认为应该工作....
答案 1 :(得分:13)
这很简单:
var folders = ...;
var subfolders =
from folder in folders
from subfolder in folder.Subfolders
where subfolder.Documents.Any(d => d.Name == "Resume")
select subfolder;
想想LINQ!