title: Efficient way to get part of a string
body: <p>I have a name which is made of a <code>prefix</code> a <code>type</code> and name , i want to retrieve the <code>name</code> part.</p>
  
  <p><code>Prefix</code> always remains same but <code>Type</code> can change. </p>
  
  <p>I have the following code to get the name part:                   </p>
  
  <pre><code>            string prefix = "Prefix-";
              string str =prefix + "Type-hello-j---.xml"; 
              str = Path.GetFileNameWithoutExtension(str);
              str = str.Substring(prefix.Length);
              str = str.Substring(str.IndexOf('-') + 1); 
  </code></pre>
  
  <p>In the above example the name part is: <code>hello-j---</code>
  Is there any efficient/better way to do the same in C# ?</p>