开发者

How do I quicky fill an array with a specific value?

开发者 https://www.devze.com 2023-02-12 15:52 出处:网络
Array.开发者_运维问答Clear() fills the arrays with the default value (zero for integers), I would like to fill it using -1 for example.

Array.开发者_运维问答Clear() fills the arrays with the default value (zero for integers), I would like to fill it using -1 for example.

Thanks.


The other way is:

int[] arr =  Enumerable.Repeat(-1, 10).ToArray();
Console.WriteLine(string.Join(",",arr));


I am not aware of such a method. You could write one yourself, though:

public static void Init<T>(this T[] array, T value)
{
    for(int i=0; i < array.Length; ++i)
    {
        array[i] = value;
    }
}

You can call it like this:

int[] myArray = new int[5];
myArray.Init(-1);


For example the array 'test' is filled with min value, so following is the code :

Array.Fill(test,int.MinValue)


One way to do it without using a method.

int[,] array = new int[,]{{0, -1},{-1, 0}}; Console.WriteLine(array[0, 0]); Console.WriteLine(array[0, 1]);


in VB.NET just make a CompilerExtension and Template

Imports System.Runtime.CompilerServices

<Extension>
Public Sub Fill(Of T)(buffer() As T, value As T)
    For i As Integer = 0 To buffer.Length - 1 : buffer(i) = value : Next
End Sub

you can than use it on any array like this

Public MyByteBuffer(255) as Byte
Public MyDoubleBuffer(20) as Double

MyByteBuffer.Fill(&HFF)
MyDoubleBuffer.Fill(1.0)
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号