コード例 #1
0
 private static IEnumerable <IGrouping <string, FolderTreeItem> > CreateGrouping_AllItems(FolderItem rootFolder)
 {
     return
         //From root folder ...
         (rootFolder
          //Select all descendant files and folders ...
          .DescendantItems()
          //Then order the items by item path ...
          .OrderBy(item => item.ItemPath)
          //And put all of them in a single group
          .GroupBy(item => "All Items"));
 }
コード例 #2
0
 private static IEnumerable <IGrouping <string, FolderTreeItem> > CreateGrouping_Keywords(FolderItem rootFolder)
 {
     return
         //From root folder ...
         (rootFolder
          //Select all descendant files and folders ...
          .DescendantItems()
          //Then order the items by item path ...
          .OrderBy(item => item.ItemPath)
          //For each item, get the keywords in its name as a set of distinct
          //FolderTreeItemAttribute<string> objects and flatten the objects into a single list
          .SelectMany(item => item.ItemNameKeywords())
          //Then group all items by the keywords
          .GroupBy(itemAttr => itemAttr.Value, itemAttr => itemAttr.Item)
          //Then order the groups by thier keys
          .OrderBy(item => item.Key));
 }