Если я правильно понимаю FillChar, он присваивает всем элементам массива одинаковое значение, да?
В этом случае, если значение не равно 0, вы, вероятно, должны выполнить цикл:
for(int i = 0 ; i < arr.Length ; i++) {
arr[i] = value;
}
Для установки значений для типа 0 есть Array.Clear
Очевидно, что с ответом цикла вы можете вставить этот код в служебный метод, если вам нужно ... например, как метод расширения:
public static void FillChar<T>(this T[] arr, T value) {...}
Тогда вы можете использовать:
int[] data = {1,2,3,4,5};
//...
data.FillChar(7);
Если вы абсолютно должны иметь блочные операции, тогда Buffer.BlockCopy
можно использовать для переноса данных между массивами locatiosn - например, вы можете записать первый блок, а затем несколько раз скопировать его, чтобы заполнить основная часть массива.