Try using Substring
of _index_
from main string to do so
Lst<string> fileNames = new List<string>();
var SortedFiles = FileNames.OrderBy(x => Decimal.Parse(path.Substring(path.IndexOf("_") + 1, path.Substring(path.IndexOf("_") + 1).IndexOf("_"))).ToList();
Edit: to sort file name such as \\Programs\\Drop_99\\recepes\\CLF\\20180626113520_2_WAVES.dat
use Path.GetFileName()
Solution using below answer as ref.
var sampl12836 = xspli.OrderBy(ele =>
{
var path = Path.GetFileName(ele);
return Decimal.Parse(path.Split('_')[1]);
}).ToList();
Solution using my answer:-
var sorted = FileNames.OrderBy(ele =>
{
var path = Path.GetFileName(ele);
int firstIndex = path.IndexOf("_");
return Decimal.Parse(path.Substring(path.IndexOf("_") + 1, path.Substring(firstIndex + 1).IndexOf("_")));
}).ToList();