using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static Regex rx = new Regex(@"^(TC_)_?(\d+).*", RegexOptions.Compiled);
public class FilePathComparer : IEqualityComparer<string>
{
public bool Equals(string x, string y)
{
return rx.Replace(x, "$1$2") == rx.Replace(y, "$1$2");
}
public int GetHashCode(string s)
{
return rx.Replace(s,"$1$2").GetHashCode();
}
}
public static void Main()
{
var FileNames_List_Jetzt_Dateien = new List<string> { "TC__6493_8exp","TC__6494_8exp","TC__6495_8exp"};
var TEST_FÄLLE = new List<string> { "TC_6493","TC_6494","TC_6495"};
var intersected = FileNames_List_Jetzt_Dateien.Intersect(TEST_FÄLLE, new FilePathComparer());
foreach (var s in intersected)
Console.WriteLine(s);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyBSZWdleCByeCA9IG5ldyBSZWdleChAIl4oVENfKV8/KFxkKykuKiIsIFJlZ2V4T3B0aW9ucy5Db21waWxlZCk7CglwdWJsaWMgY2xhc3MgRmlsZVBhdGhDb21wYXJlciA6IElFcXVhbGl0eUNvbXBhcmVyPHN0cmluZz4KCXsKCSAgICBwdWJsaWMgYm9vbCBFcXVhbHMoc3RyaW5nIHgsIHN0cmluZyB5KQoJICAgIHsKCSAgICAgICAgcmV0dXJuIHJ4LlJlcGxhY2UoeCwgIiQxJDIiKSA9PSByeC5SZXBsYWNlKHksICIkMSQyIik7CgkgICAgfQoJICAgIHB1YmxpYyBpbnQgR2V0SGFzaENvZGUoc3RyaW5nIHMpCgkgICAgewoJICAgICAgICByZXR1cm4gcnguUmVwbGFjZShzLCIkMSQyIikuR2V0SGFzaENvZGUoKTsKCSAgICB9Cgl9CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJdmFyIEZpbGVOYW1lc19MaXN0X0pldHp0X0RhdGVpZW4gPSBuZXcgTGlzdDxzdHJpbmc+IHsgIlRDX182NDkzXzhleHAiLCJUQ19fNjQ5NF84ZXhwIiwiVENfXzY0OTVfOGV4cCJ9OwoJCXZhciBURVNUX0bDhExMRSA9IG5ldyBMaXN0PHN0cmluZz4geyAiVENfNjQ5MyIsIlRDXzY0OTQiLCJUQ182NDk1In07CiAgICAJdmFyIGludGVyc2VjdGVkID0gRmlsZU5hbWVzX0xpc3RfSmV0enRfRGF0ZWllbi5JbnRlcnNlY3QoVEVTVF9Gw4RMTEUsIG5ldyBGaWxlUGF0aENvbXBhcmVyKCkpOwogICAgICAgIGZvcmVhY2ggKHZhciBzIGluIGludGVyc2VjdGVkKQogICAgICAgIAlDb25zb2xlLldyaXRlTGluZShzKTsKCX0KfQ==