31 lines
767 B
C#
Executable File
31 lines
767 B
C#
Executable File
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;
|
|
}
|
|
|
|
}
|