title: Group list of strings by subparts of item
body: <p>Sorry for the ambiguous title...
  I find explaining my issue difficult - let me know if you need to know more.</p>
  <p>I've got a list that i'd like to be grouped by part of a string.
  This string is also in the list.
  This is the complete list, its not static, and will contain different values.</p>
  <pre><code>CookieMaker_TransportSettingsManual
  CookieMaker_TransportSettingsParameters
  Cookie_WrapperSettings
  Cookie_WrapperSettingsManual
  Cookie_WrapperSettingsParameters
  Cookie_ProfileBendSettings
  Cookie_ProfileBendSettingsParameters
  Cookie_HopperSettings
  Cookie_HopperSettingsManual
  Cookie_HopperSettingsParameters
  Cookie_CutterSettings
  Cookie_CutterSettingsManual
  Cookie_CutterSettingsParameters
  General_SpeedSetting
  General_SpeedSettingManual
  General_SpeedSettingSettings
  General_CalibrationSettings
  General_CalibrationSettingsCalibration
  Bonbon_Vertical
  Bonbon_VerticalAligner
  Bonbon_VerticalHopper
  Bonbon_VerticalManual
  Bonbon_VerticalTransporter
  Bonbon_Horizontal
  Bonbon_HorizontalHopper
  Bonbon_HorizontalManual
  Bonbon_HorizontalCookie
  Bonbon_HorizontalTransporter
  Bonbon_Bonbon
  Bonbon_BonbonExhaust
  Bonbon_BonbonManual
  Bonbon_BonbonSection1
  Bonbon_BonbonSection2
  Bonbon_BonbonSection3
  Bonbon_Compensator
  Bonbon_CompensatorCarriage
  Bonbon_CompensatorHopper
  Bonbon_CompensatorManual
  Bonbon_CollectingUnit
  Bonbon_CollectingUnitManual
  Bonbon_CollectingUnitTransporter
  Bonbon_CollectingUnitTubeMaker
  CookieMaker_TransportSettings
  CookieMaker_TransportSettingsBonbon
  CookieMaker_TransportSettingsPandora
  </code></pre>
  <p>The expected result would be a groups like so:</p>
  <pre><code>General_SpeedSetting
    ==&gt; General_SpeedSettingManual
    ==&gt; General_SpeedSettingSettings
  
  Cookie_WrapperSettings
    ==&gt; Cookie_WrapperSettingsManual
    ==&gt; Cookie_WrapperSettingsParameters
  </code></pre>
  <p>The resulting datatype does not matter.
  Also i don't mind linq.</p>
  <p>Code / fiddle to get up and running quickly;</p>
  <pre class="lang-cs prettyprint-override"><code>using System;
                      
  public class Program
  {
      public static void Main()
      {
          var inputString = &quot;CookieMaker_TransportSettingsManual|CookieMaker_TransportSettingsParameters|Cookie_WrapperSettings|Cookie_WrapperSettingsManual|Cookie_WrapperSettingsParameters|Cookie_ProfileBendSettings|Cookie_ProfileBendSettingsParameters|Cookie_HopperSettings|Cookie_HopperSettingsManual|Cookie_HopperSettingsParameters|Cookie_CutterSettings|Cookie_CutterSettingsManual|Cookie_CutterSettingsParameters|General_SpeedSetting|General_SpeedSettingManual|General_SpeedSettingSettings|General_CalibrationSettings|General_CalibrationSettingsCalibration|Bonbon_Vertical|Bonbon_VerticalAligner|Bonbon_VerticalHopper|Bonbon_VerticalManual|Bonbon_VerticalTransporter|Bonbon_Horizontal|Bonbon_HorizontalHopper|Bonbon_HorizontalManual|Bonbon_HorizontalCookie|Bonbon_HorizontalTransporter|Bonbon_Bonbon|Bonbon_BonbonExhaust|Bonbon_BonbonManual|Bonbon_BonbonSection1|Bonbon_BonbonSection2|Bonbon_BonbonSection3|Bonbon_Compensator|Bonbon_CompensatorCarriage|Bonbon_CompensatorHopper|Bonbon_CompensatorManual|Bonbon_CollectingUnit|Bonbon_CollectingUnitManual|Bonbon_CollectingUnitTransporter|Bonbon_CollectingUnitTubeMaker|CookieMaker_TransportSettings|CookieMaker_TransportSettingsBonbon|CookieMaker_TransportSettingsPandora&quot;;
          var inputList = inputString.Split('|');
          
          var result = inputList; // Code here ;)
                          
          foreach(var r in result)
          { Console.WriteLine(r);}
      }
  }
  </code></pre>
  <p><a href="https://dotnetfiddle.net/neCUEL" rel="nofollow noreferrer">https://dotnetfiddle.net/neCUEL</a></p>