If you're using "traditional" ASP.NET, you can just store the value directly in the session:
int[,] values = { { 1, 2 }, { 42, 64 } };
Session["SomeUniqueKey"] = value;
int[,] otherValues = (int[,])Session["SomeUniqueKey"];
If you're using ASP.NET Core, things are slightly more complicated. You can directly store a byte array, and there are extension methods for strings and single integers. But there's nothing for arrays of other types, or more complicated objects.
Session in ASP.NET Core | Microsoft Docs[
^]
ISession Interface (Microsoft.AspNetCore.Http) | Microsoft Docs[
^]
The usual approach seems to be to serialize the value to JSON and store it as a string:
int[,] values = { { 1, 2 }, { 42, 64 } };
Session.SetString("SomeUniqueKey", JsonConvert.SerializeObject(value));
int[,] otherValues = JsonConvert.DeserializeObject<int[,]>(Session.GetString("SomeUniqueKey"));
However, there may be more efficient ways to accomplish this.