kreta/Framework/Util/StringValueUtils.cs
2024-03-13 00:33:46 +01:00

20 lines
569 B
C#

using System;
using System.Collections.Concurrent;
using System.Reflection;
namespace Kreta.Framework.Util
{
public static class StringValueUtils
{
private static readonly ConcurrentDictionary<Enum, string> values = new ConcurrentDictionary<Enum, string>();
public static string GetStringValue(this Enum key)
{
return values.GetOrAdd(key, k =>
k.GetType()
.GetMember(k.ToString())[0]
.GetCustomAttribute<StringValueAttribute>()?
.Value);
}
}
}