Add item to an Array 2D using LINQ
Couple nitpicks:


Try to stick to PascalCasing for method names. Using _ underscores not only makes your method names look rather messy, the underscore is conventionally used for event handler methods (like Form1_Load, i.e. object_event).
Consistency is king. Your two snippets aren't consistent as far as parameter naming goes: you're using PascalCasing in your top example, and camelCasing in the bottom one. Pick one, stick to it.
The term generic has a specific meaning in the .net world. That's not a generic function. General-purpose, maybe?




A quick Google search didn't yield much interesting results in VB.net, but this StackOverflow answer has a decent C# version of the code - and it just happens to be an actual generic method:


  Most methods in the array class only work with one-dimensional arrays, so you have to perform the copy manually:

T[,] ResizeArray&lt;T&gt;(T[,] original, int rows, int cols)
{
    var newArray = new T[rows,cols];
    int minRows = Math.Min(rows, original.GetLength(0));
    int minCols = Math.Min(cols, original.GetLength(1));
    for(int i = 0; i &lt; minRows; i++)
        for(int j = 0; j &lt; minCols; j++)
           newArray[i, j] = original[i, j];
    return newArray;
}



Now I know this isn't VB, but an array is an array regardless of the language, so I strongly recommend you take a look at the SO answer, as it goes in much more details than I'd care to quote over here.

Bottom line: You cannot use Array.Resize() with multidimensional arrays.