bfr/BFR/Helpers/Extensions.cs

42 lines
1.3 KiB
C#
Raw Permalink Normal View History

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace BFR.Helpers
{
public static class IListExtensions
{
public static void ReplaceAll<T>(this IList<T> list, IEnumerable<T> replacement)
{
list.Clear();
foreach (var t in replacement)
list.Add(t);
}
}
public static class StringExtensions
{
public static string Replace(this string input, string pattern, string replacement, bool useRegex = false, bool useRegexReplace = false) =>
Regex.Replace(input,
useRegex ? pattern : Regex.Escape(pattern),
useRegexReplace ? replacement : replacement.Replace("$", "$$"));
public static bool RegexContains(this string input, string pattern)
{
try { return Regex.IsMatch(input, pattern); }
catch(Exception) { return false; }
}
}
public static class EnumExtensions
{
public static T GetAttribute<T>(this Enum enumVal) where T : Attribute
{
var type = enumVal.GetType();
var memInfo = type.GetMember(enumVal.ToString());
var attributes = memInfo[0].GetCustomAttributes(typeof(T), false);
return (attributes.Length > 0) ? (T)attributes[0] : null;
}
}
}