Is there a way of of overwriting the value of variable of type Regex
?
I have working code which looks as follows:
string[] dirEntries = Directory.GetFiles(inputDir, "*.csv", SearchOption.TopDirectoryOnly);
var fileList = dirEntries
.Select(x => new FileMetaDto
{
FileName = Path.GetFileName(x),
FullPath = x,
FileType = fileType,
});
switch (fileType)
{
case "pd": // probability of default
Regex myRegexPD = new Regex("^PD_"); // probability of default
fileList = fileList.Where(x => myRegexPD.IsMatch(x.FileName));
break;
case "fx": // exchange rate
Regex myRegexFx = new Regex("^FX_"); // exchange rate
fileList = fileList.Where(x => myRegexFx.IsMatch(x.FileName));
break;
default:
System.Diagnostics.Debug.WriteLine("File type not valid.");
break;
}
In reality, this switch
statement is much longer, so I would like to shorten things by doing something like the following:
my Regex myRegex = new Regex();
switch (fileType)
{
case "pd":
myRegex = "^PD_";
break;
case "fx":
myRegexFx = "^FX_";
break;
default:
System.Diagnostics.Debug.WriteLine("File type not valid.");
myRegEx = "*";
break;
}
fileList = fileList.Where(x => myRegex.IsMatch(x.FileName));
However, this gives various type conversion errors. Any suggestion how to tackle that?