Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
索引超出了数组C#.net的界限_C# - Fatal编程技术网

索引超出了数组C#.net的界限

索引超出了数组C#.net的界限,c#,C#,这是我的密码。。 我有一个大小为[5]的数组。我在这个数组中添加了5个值,然后删除了这些值。现在我的数组只有一个值。如果我将另一个值添加到此数组,则表明错误索引超出了数组的界限。我的代码不完全正确,但这有助于您尝试使用此列表 试试这个 int i = 0; string[] AbDates = new string[5]; private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {

这是我的密码。。 我有一个大小为[5]的数组。我在这个数组中添加了5个值,然后删除了这些值。现在我的数组只有一个值。如果我将另一个值添加到此数组,则表明错误索引超出了数组的界限。

我的代码不完全正确,但这有助于您尝试使用此列表 试试这个

int i = 0;
string[] AbDates = new string[5];

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    string dt = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
    if (string.IsNullOrEmpty(dt))
    { 
    }
    else
    {
        if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor == Color.Red)
        {
            if (MessageBox.Show("Do you  want to UnMark this ?", "UnMark", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
            {
            }
            else
            {
                dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.White;
                dt = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
                AbDates = AbDates.Where(val => val != dt).ToArray();
                i--;
            }
        }
        else
        {
            if (MessageBox.Show("Do you  want to Mark this As Absent?", "Absent", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
            {
            }
            else
            {
                dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.Red;
                dt = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
                //MessageBox.Show(i.ToString());
                AbDates[i] = dt;
                i++;
            }
        }
    }
}
inti=0;
List AbDates=新列表();
私有void dataGridView1_CellClick(对象发送者,DataGridViewCellEventArgs e)
{
字符串dt=dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
if(string.IsNullOrEmpty(dt))
{ 
}
其他的
{
如果(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor==Color.Red)
{
if(MessageBox.Show(“是否要取消此标记?”,“取消标记”,MessageBoxButtons.YesNo,MessageBoxIcon.Warning)=DialogResult.No)
{
}
其他的
{
dataGridView1.Rows[e.RowIndex]。单元格[e.ColumnIndex]。Style.BackColor=Color.White;
dt=dataGridView1.Rows[e.RowIndex]。单元格[e.ColumnIndex]。Value.ToString();
AddRange(AbDates.Where(val=>val!=dt.ToList());
我--;
}
}
其他的
{
if(MessageBox.Show(“是否要将此标记为不存在?”,“不存在”,MessageBoxButtons.YesNo,MessageBoxIcon.Warning)=DialogResult.No)
{
}
其他的
{
dataGridView1.Rows[e.RowIndex]。单元格[e.ColumnIndex]。Style.BackColor=Color.Red;
dt=dataGridView1.Rows[e.RowIndex]。单元格[e.ColumnIndex]。Value.ToString();
//Show(i.ToString());
AbDates.Add(dt);
i++;
}
}
}
您正在这里创建一个新数组,它比原始数组小(前提是dt的值在旧数组中)


正如Co.Aden所说,为什么不使用列表?

使用列表而不是数组请正确格式化您的代码。您应该修改您的,而不是发布带有代码的新代码。另外,请只发布您代码的相关部分,这样其他人就不必浪费数小时来弄清楚您的逻辑,而且,这是您可以调试的ed easilyan错误显示在AddRange(dt)中;字符串不包含“AddRange”的防御。请使用Add()代替AddRange()否。它不起作用..是..我知道了..非常感谢您现在我编辑了它并尝试使用它
int i = 0;
List<string> AbDates = new List<string>();
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
string dt = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
if (string.IsNullOrEmpty(dt))
{ 
}
else
{
if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor == Color.Red)
{
if (MessageBox.Show("Do you  want to UnMark this ?", "UnMark", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
{
}
else
{
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.White;
dt = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
AbDates.AddRange(AbDates.Where(val => val != dt).ToList());
i--;
}
}
else
{
if (MessageBox.Show("Do you  want to Mark this As Absent?", "Absent", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
{
}
else
{
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.Red;
dt = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
//  MessageBox.Show(i.ToString());
AbDates.Add(dt);
i++;
}
}
}
AbDates = AbDates.Where(val => val != dt).ToArray();