namespace Common.Extensions;
///
/// Extensions for the string object type
///
public static class StringExtensions
{
///
/// Determines whether this string contains the specified string. Not case sensitive.
///
/// The source.
/// The contained.
public static bool ContainsIgnoreCase(this string source, string contained)
{
return source?.IndexOf(contained, StringComparison.InvariantCultureIgnoreCase) >= 0;
}
///
/// Expands a path containing a wildcard pattern
///
///
///
public static IEnumerable ExpandPath(this string self)
{
var parts = self.Split(Path.DirectorySeparatorChar);
var fileName = parts.Last();
if (fileName.Contains('*') || fileName.Contains('?'))
{
// Path contains file pattern
var path = Path.Combine(parts.SkipLast(1).ToArray());
return Directory.EnumerateFiles(path, fileName);
}
// Path contains no pattern
return new[] { self };
}
}