2010-05-10 3 views
1

У меня есть 3 классов в C#:Вложенный запрос проблема

class Folder 
{ 
    int Id { get; set; } 
    List<File> files { get; set;} 
} 

class File 
{ 
    int Id { get; set; } 
    Author author { get; set; } 
} 

class Author 
{ 
    int Id { get; set; } 
    string Name { get; set; } 
} 

У меня есть список элементов папки (List):

var folders = getAllFolders(); 

Как я могу использовать Linq, чтобы вернуть список папок из список, когда я знаю только идентификатор автора файлов?

Мне нужен список, содержащий все папки, в которых данный автор создал файл!

Благодаря

ответ

4

Вы хотите, чтобы найти папки, в которых Any файлы имеют идентификатор автора, равный тому, который Вы ищете.

var authFolders = folders.Where(fo => fo.files.Any(fi => fi.Author.Id == authorId)); 
+1

Возможно, слишком много f, но это идея. – Kobi

+1

@ Kobi - да. Я продолжаю говорить, что SO нуждается в intellisense, но они продолжают игнорировать меня. :-) – tvanfosson