C# C无法从图表中删除自定义标签

C# C无法从图表中删除自定义标签,c#,C#,我想从图表C中的特定位置删除自定义标签 行数据是由datagrid填充数据的列表 试试这个: foreach (var item in rowdata) { if (!(this.chart1.ChartAreas[0].AxisX.CustomLabels.Contains(checkedListBox1.SelectedItem))) { if (e.NewValue == CheckState.Checked) {

我想从图表C中的特定位置删除自定义标签

行数据是由datagrid填充数据的列表

试试这个:

foreach (var item in rowdata)
{ 
    if (!(this.chart1.ChartAreas[0].AxisX.CustomLabels.Contains(checkedListBox1.SelectedItem)))
    {
        if (e.NewValue == CheckState.Checked)
        {
            var s = new CustomLabel(temp + 1.5, m + 1.5, item, labelrow, LabelMarkStyle.LineSideMark);

            this.chart1.ChartAreas[0].AxisX.CustomLabels.Add(s);

        }
        else
        {
            // You can make this filter more specific if necessary
            var remLabel = this.chart1.ChartAreas[0].AxisX.CustomLabels
                .SingleOrDefault(cl=>cl.FromPosition == temp + 1.5 
                                     && cl.ToPosition == m + 1.5);
            if (remLabel != null)
                this.chart1.ChartAreas[0].AxisX.CustomLabels.Remove(remLabel);
        }
    }
    temp = m;
    m++;
}

代码的问题是正在比较对象引用。您试图删除的新对象不在集合中。很可能您的mb变量始终为-1。

它给出的异常序列包含多个匹配元素这是我以前的代码,其中数据从gridview填充到列表中
foreach (var item in rowdata)
{ 
    if (!(this.chart1.ChartAreas[0].AxisX.CustomLabels.Contains(checkedListBox1.SelectedItem)))
    {
        if (e.NewValue == CheckState.Checked)
        {
            var s = new CustomLabel(temp + 1.5, m + 1.5, item, labelrow, LabelMarkStyle.LineSideMark);

            this.chart1.ChartAreas[0].AxisX.CustomLabels.Add(s);

        }
        else
        {
            // You can make this filter more specific if necessary
            var remLabel = this.chart1.ChartAreas[0].AxisX.CustomLabels
                .SingleOrDefault(cl=>cl.FromPosition == temp + 1.5 
                                     && cl.ToPosition == m + 1.5);
            if (remLabel != null)
                this.chart1.ChartAreas[0].AxisX.CustomLabels.Remove(remLabel);
        }
    }
    temp = m;
    m++;
}