[英]adding initialized array(index 5 onwards is null) to chart control using for loop
我已經初始化了一個二維數組,並從索引5開始包含空值。 我試圖將數組值添加到我的圖表控件。 當我嘗試向Console.WriteLine顯示值時,沒有發生異常,但是當我將其添加到圖表系列時,異常是“索引超出了數組的界限”。 有人可以幫助我嗎? 是因為圖表控件的柱線有限嗎?
try
{
//females age range
string[,] gAge = new string[10, 2];
gAge[0, 0] = "F.13-17";
gAge[0, 1] = yf.f1317.ToString();
gAge[1, 0] = "F.18-24";
gAge[1, 1] = yf.f1824.ToString();
gAge[2, 0] = "M.25-34";
gAge[2, 1] = yf.m2534.ToString();
gAge[3, 0] = "M.13-17";
gAge[3, 1] = yf.m1317.ToString();
gAge[4, 0] = "M.18-24";
gAge[4, 1] = yf.m1824.ToString();
for (int i = 0; i < gAge.Length; i++)
{
if (gAge[i, 0] == null)
{
break;
}
else
{
Console.WriteLine(gAge[i, 0].ToString());
string[] seriesArray = { gAge[i, 0].ToString() };
Series series = this.chart1.Series.Add(seriesArray[i]);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
問題在於您正在獲取整個數組的長度,在這種情況下, gAge.Length
等於20,這是數組中索引的總數。 它超出了您的第一個數組維度的范圍。 嘗試改用gAge.GetLength(0)
。
try
{
chart1.Series.Clear();
chart1.Titles.Clear();
chart1.Visible = true;
//CODES HERE TO GET THE SELECTED PAGE FROM DROP DOWN LIST
var fb = new FacebookClient(myToken.Default.token);
var query = string.Format("SELECT metric, value FROM insights WHERE object_id=132414626916208 AND metric='page_fans_gender_age' AND period = period('lifetime') AND end_time = end_time_date('2013-01-18')");
dynamic parameters = new ExpandoObject();
parameters.q = query;
var data = fb.Get<genderAgeDataII>("fql", parameters);
genderAge yf = (genderAge)data.data[0].value;
//females age range
string[,] gAge = new string[10, 2];
gAge[0, 0] = "F.13-17";
gAge[0, 1] = yf.f1317.ToString();
gAge[1, 0] = "F.18-24";
gAge[1, 1] = yf.f1824.ToString();
gAge[2, 0] = "M.25-34";
gAge[2, 1] = yf.m2534.ToString();
gAge[3, 0] = "M.13-17";
gAge[3, 1] = yf.m1317.ToString();
gAge[4, 0] = "M.18-24";
gAge[4, 1] = yf.m1824.ToString();
for (int i = 0; i < gAge.GetLength(0); i++)
{
if (gAge[i, 0] == null)
{
break;
}
else
{
string[] seriesArray = { gAge[i,0] };
// Add series.
for (int w = 0; w < seriesArray.Length; w++)
{
// Add series.
Series series = this.chart1.Series.Add(seriesArray[w]);
int[] pointsArray = new int[seriesArray.Length];
pointsArray[w] = Convert.ToInt32(gAge[i, 1]);
series.Points.Add(pointsArray[w]);
}
Console.WriteLine(gAge[i, 0].ToString());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.