ServerDatabase/Database/Ext.cs

31 lines
767 B
C#
Raw Normal View History

2023-06-28 12:44:59 -04:00
using System.Collections.Concurrent;
namespace ServerDatabase;
internal static class Ext
{
internal static bool IsNullableEnum(this Type t)
{
Type u = Nullable.GetUnderlyingType(t)!;
return (u != null) && u.IsEnum;
}
public static OutputType[] Cast<InputType, OutputType>(InputType f)
{
Array inputArray_in = (Array)(object)f;
var aRange = Partitioner.Create(0, inputArray_in.Length);
OutputType[] aResult = new OutputType[inputArray_in.Length];
Parallel.ForEach(aRange, (r) =>
{
for (int i = r.Item1; i < r.Item2; i++)
{
aResult[i] = (OutputType)(inputArray_in.GetValue(i));
}
});
return aResult;
}
}