เป็นโปรแกรมที่ query ค่าจากฐานข้อมูล แล้วมาเก็บใน array ซึ่งแสดงผลปกติน่ะ ่ะ แต่จะมีค่า index was outside the bounds of the array ตลอดทุกครั้งเลย ไม่รู้สาเหตุมาจากอะไร
กรณีนี้ ผมแนะนำให้ใช้พวก List จะดีกว่านะครับ
เนื่องจากว่ามันจะยืดหยุ่นได้ดีกว่าที่เราใช้ Array และไม่ต้องกำหนดขนาดด้วยครับ Code (C#)
List<int> numbers = new List<int>();
numbers.add(10); // index 0, value = 10;
numbers.add(20); // index 1, value = 20;
numbers.add(30); // index 2, value = 30;
//Print
MessageBox.Show(number[0].ToString());
MessageBox.Show(number[1].ToString());
MessageBox.Show(number[2].ToString());
List<int> num = new List<int>();
for (int i = 0; i < dt.Rows.Count; i++)
{
int valRepeat = Int32.Parse(dt.Rows[i]["repdur_status"].ToString());
num.Add(valRepeat);
}
var duplicates = num
.GroupBy(i => i)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
foreach (var d in duplicates)
MessageBox.Show(d.ToString());
MessageBox.Show("Rows.Count= " + dt.Rows.Count); // ผลคือเลข 4
if (dt.Rows.Count > 0)
{
int[] num = new int[dt.Rows.Count];
int i, j;
string result = "";
for (i = 0; i < dt.Rows.Count; i++)
{
int valRepeat = Int32.Parse(dt.Rows[i]["repdur_status"].ToString());
//MessageBox.Show(valRepeat);
num[i] = valRepeat;
}
List<int> num = new List<int>();
for (int i = 0; i < dt.Rows.Count; i++)
{
int valRepeat = Int32.Parse(dt.Rows[i]["repdur_status"].ToString());
num.Add(valRepeat);
}
var duplicates = num
.GroupBy(i => i)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
foreach (var d in duplicates)
MessageBox.Show(d.ToString());
Date :
2013-08-21 11:59:06
By :
Takashi_7
No. 15
Guest
Code (C#)
var dupCount = from d in dt.AsEnumerable()
group d by d.Field<int>("repdur_status") into g
select new
{
Key = g.Key,
Count = g.Count()
};