using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace reactive_test
{
class Program
{
public static void Main()
{
List<string> val1 = new List<string> {
"File_1.txt","File_2.txt","File_1_Over.txt","File_2_Item.txt","File_1_Over.bat",
"File_1_Over_test.bat","File_2_Standard.bat","File_2_Item_Standard.bat"
};
//val1.Sort(( x, y ) => string.Compare( Path.GetExtension(y), Path.GetExtension(x) ));
var val = val1
.GroupBy(f => Path.GetFileNameWithoutExtension(f))
.OrderBy(group => group.Key);
foreach (var group in val)
{
var q = group.OrderByDescending(f => Path.GetExtension(f));
foreach (var f in q)
{
Console.WriteLine(f);
}
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKCm5hbWVzcGFjZSByZWFjdGl2ZV90ZXN0CnsKICAgIGNsYXNzIFByb2dyYW0KICAgIHsKICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCiAgICAgICAgewoKICAgICAgICAgICAgTGlzdDxzdHJpbmc+IHZhbDEgPSBuZXcgTGlzdDxzdHJpbmc+IHsKICAgIAkJICAiRmlsZV8xLnR4dCIsIkZpbGVfMi50eHQiLCJGaWxlXzFfT3Zlci50eHQiLCJGaWxlXzJfSXRlbS50eHQiLCJGaWxlXzFfT3Zlci5iYXQiLAoJCQkJIkZpbGVfMV9PdmVyX3Rlc3QuYmF0IiwiRmlsZV8yX1N0YW5kYXJkLmJhdCIsIkZpbGVfMl9JdGVtX1N0YW5kYXJkLmJhdCIKCQkJfTsKCiAgICAgICAgICAgIC8vdmFsMS5Tb3J0KCggeCwgeSApID0+IHN0cmluZy5Db21wYXJlKCBQYXRoLkdldEV4dGVuc2lvbih5KSwgUGF0aC5HZXRFeHRlbnNpb24oeCkgKSk7CiAgICAgICAgICAgIHZhciB2YWwgPSB2YWwxCiAgICAgICAgICAgICAgICAuR3JvdXBCeShmID0+IFBhdGguR2V0RmlsZU5hbWVXaXRob3V0RXh0ZW5zaW9uKGYpKQogICAgICAgICAgICAgICAgLk9yZGVyQnkoZ3JvdXAgPT4gZ3JvdXAuS2V5KTsKCiAgICAgICAgICAgIGZvcmVhY2ggKHZhciBncm91cCBpbiB2YWwpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBxID0gZ3JvdXAuT3JkZXJCeURlc2NlbmRpbmcoZiA9PiBQYXRoLkdldEV4dGVuc2lvbihmKSk7CiAgICAgICAgICAgICAgICBmb3JlYWNoICh2YXIgZiBpbiBxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKGYpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgIH0KICAgIH0KfQo=