using System.Collections.Generic;
public static void Main()
var fhList = new List<FileHierarchy>() {
new FileHierarchy(1,null,true),
new FileHierarchy(2,1,null),
new FileHierarchy(3,1,null),
new FileHierarchy(4,2,null),
new FileHierarchy(5,null,false),
new FileHierarchy(6,5,null),
new FileHierarchy(7,6,null),
new FileHierarchy(8,null,true),
new FileHierarchy(9,8,null)
var result = fhList.Where(fh => fh.NeedsShowing.HasValue &&
&& fh.ParentID.HasValue == false).ToList();
foreach(var r in result) {
public class FileHierarchy
public FileHierarchy(int id, int? pid, bool? ns) {
public int ID { get; set; }
public int? ParentID { get; set; }
public bool? NeedsShowing { get; set; }