Casting session object into a 2-dimensional array

G

Guest

Hello All,

I have a 2-dimensional array that I am storing as a session variable. I have
no idea on how I can cast the session variable back to 2-dimensional array.
Any pointers?

Reference code below...

Array declaration:
DateTime[][] DateRangesForDataLists = new DateTime[5][];

Sample element population:
DateRangesForDataLists[0] = new DateTime[2];
DateRangesForDataLists[0][0] = System.DateTime.Today;
DateRangesForDataLists[0][1] = new
DateTime(System.DateTime.Today.Year,System.DateTime.Today.Month,1);

Storing in session:
Session["DataListStartEndDates"] = DateRangesForDataLists;

Trying to access from session:
private DateTime GetDateFromSession(int FirstIndex, int SecondIndex)
{
DateTime[,] DateRangesForDataLists = new DateTime[5,2];
DateRangesForDataLists = (DateTime[,])Session["DataListStartEndDates"];
return DateRangesForDataLists[FirstIndex,SecondIndex];
}

And in the above method it is giving me an error: "Specified cast is not
valid." What am I doing wrong?


Thanks for your help!!
 
K

Karl Seguin [MVP]

Try:

DateTime[][] DateRangesForDataLists =
(DateTime[][])Session["DataListStartEndDates"];


karl
 
G

Guest

Nope, it gives me the same error message.

When you observe my code, I declared the array as a jagged array but while
retrieving I am casting it to a normal 5x2 array.....is that the problem?

How can I cast it into a jagged array?

Karl Seguin said:
Try:

DateTime[][] DateRangesForDataLists =
(DateTime[][])Session["DataListStartEndDates"];


karl

--
MY ASP.Net tutorials
http://www.openmymind.net/


Diffident said:
Hello All,

I have a 2-dimensional array that I am storing as a session variable. I
have
no idea on how I can cast the session variable back to 2-dimensional
array.
Any pointers?

Reference code below...

Array declaration:
DateTime[][] DateRangesForDataLists = new DateTime[5][];

Sample element population:
DateRangesForDataLists[0] = new DateTime[2];
DateRangesForDataLists[0][0] = System.DateTime.Today;
DateRangesForDataLists[0][1] = new
DateTime(System.DateTime.Today.Year,System.DateTime.Today.Month,1);

Storing in session:
Session["DataListStartEndDates"] = DateRangesForDataLists;

Trying to access from session:
private DateTime GetDateFromSession(int FirstIndex, int SecondIndex)
{
DateTime[,] DateRangesForDataLists = new DateTime[5,2]
DateRangesForDataLists = (DateTime[,])Session["DataListStartEndDates"];
return DateRangesForDataLists[FirstIndex,SecondIndex];
}

And in the above method it is giving me an error: "Specified cast is not
valid." What am I doing wrong?


Thanks for your help!!
 
M

Mythran

Diffident said:
Hello All,

I have a 2-dimensional array that I am storing as a session variable. I
have
no idea on how I can cast the session variable back to 2-dimensional
array.
Any pointers?

Reference code below...

Array declaration:
DateTime[][] DateRangesForDataLists = new DateTime[5][];

Hmm, that isn't a 2-dimensional array...rather an array of arrays...thought
I'd point that out. A two dimensional array would be defined as DateTime[,]
DateRangesForDataLists, would it not? I may be wrong, haven't dealth with
2-dimensional arrays in a long time in C#....in VB.Net, though, DateTime()()
is considered an array of arrays and DateTime(,) is 2-dimensional...

Check it out, remember, I am hardly ever correct in my assumptions... :)
Especially, this early in the morning...

Mythran
 
A

Alvin Bruney - ASP.NET MVP

how is it declared? why can't you cast it as it is declared? post some code
if you still need help.

--
Regards,
Alvin Bruney [MVP ASP.NET]

[Shameless Author plug]
The Microsoft Office Web Components Black Book with .NET
Now Available @ www.lulu.com/owc
Forth-coming VSTO.NET - Wrox/Wiley 2006
-------------------------------------------------------



"Karl Seguin [MVP]" <karl REMOVE @ REMOVE openmymind REMOVEMETOO . ANDME
net> wrote in message news:#[email protected]...
Try:

DateTime[][] DateRangesForDataLists =
(DateTime[][])Session["DataListStartEndDates"];


karl

--
MY ASP.Net tutorials
http://www.openmymind.net/


Diffident said:
Hello All,

I have a 2-dimensional array that I am storing as a session variable. I
have
no idea on how I can cast the session variable back to 2-dimensional
array.
Any pointers?

Reference code below...

Array declaration:
DateTime[][] DateRangesForDataLists = new DateTime[5][];

Sample element population:
DateRangesForDataLists[0] = new DateTime[2];
DateRangesForDataLists[0][0] = System.DateTime.Today;
DateRangesForDataLists[0][1] = new
DateTime(System.DateTime.Today.Year,System.DateTime.Today.Month,1);

Storing in session:
Session["DataListStartEndDates"] = DateRangesForDataLists;

Trying to access from session:
private DateTime GetDateFromSession(int FirstIndex, int SecondIndex)
{
DateTime[,] DateRangesForDataLists = new DateTime[5,2]
DateRangesForDataLists = (DateTime[,])Session["DataListStartEndDates"];
return DateRangesForDataLists[FirstIndex,SecondIndex];
}

And in the above method it is giving me an error: "Specified cast is not
valid." What am I doing wrong?


Thanks for your help!!
 
K

Karl Seguin [MVP]

I'm not sure why my code doesn't work, this code compiles fine for me:

DateTime[][] DateRangesForDataLists = new DateTime[2][];
DateRangesForDataLists[0] = new DateTime[2];
DateRangesForDataLists[0][0] = DateTime.Today;
DateRangesForDataLists[0][1] = DateTime.Today.AddYears(1);

DateRangesForDataLists[1] = new DateTime[3];
DateRangesForDataLists[1][0] = DateTime.Today;
DateRangesForDataLists[1][1] = DateTime.Today.AddYears(1);
DateRangesForDataLists[1][2] = DateTime.Today.AddYears(2);

object o = DateRangesForDataLists;

DateTime[][] back = (DateTime[][])o;

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/


Diffident said:
Nope, it gives me the same error message.

When you observe my code, I declared the array as a jagged array but while
retrieving I am casting it to a normal 5x2 array.....is that the problem?

How can I cast it into a jagged array?

Karl Seguin said:
Try:

DateTime[][] DateRangesForDataLists =
(DateTime[][])Session["DataListStartEndDates"];


karl

--
MY ASP.Net tutorials
http://www.openmymind.net/


Diffident said:
Hello All,

I have a 2-dimensional array that I am storing as a session variable. I
have
no idea on how I can cast the session variable back to 2-dimensional
array.
Any pointers?

Reference code below...

Array declaration:
DateTime[][] DateRangesForDataLists = new DateTime[5][];

Sample element population:
DateRangesForDataLists[0] = new DateTime[2];
DateRangesForDataLists[0][0] = System.DateTime.Today;
DateRangesForDataLists[0][1] = new
DateTime(System.DateTime.Today.Year,System.DateTime.Today.Month,1);

Storing in session:
Session["DataListStartEndDates"] = DateRangesForDataLists;

Trying to access from session:
private DateTime GetDateFromSession(int FirstIndex, int SecondIndex)
{
DateTime[,] DateRangesForDataLists = new DateTime[5,2]
DateRangesForDataLists = (DateTime[,])Session["DataListStartEndDates"];
return DateRangesForDataLists[FirstIndex,SecondIndex];
}

And in the above method it is giving me an error: "Specified cast is
not
valid." What am I doing wrong?


Thanks for your help!!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top