You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向ObservableCollection<int>添加int时触发InvalidCastException错误求助

问题:向ObservableCollection添加数据时触发InvalidCastException错误

这段C#函数旨在往ObservableCollection<int>类型的EdiTransaction.PositionHighlights中添加或移除整数数据:

public void ApplyHighlight()
{
    var currentPos = HighlightService.GetSelectedPosition(Delimiters.ToArray());
    if (EdiTransaction.PositionHighlights.Contains(currentPos.Item1))
    {
        EdiTransaction.PositionHighlights.Remove(currentPos.Item1);
    }
    else
    {
        EdiTransaction.PositionHighlights.Add(currentPos.Item1);
    }
}

执行过程中触发了以下错误:

InvalidCastException: Unable to cast object of type System.Collections.ObjectModel.ObservableCollection[System.Int32] to type System.Int32[].


错误原因分析

  • 错误并非来自你代码中Add/Remove的逻辑,核心问题出在HighlightService.GetSelectedPosition方法的调用或内部实现:
    • 你传入的参数是Delimiters.ToArray()(一个int[]数组),但该方法内部可能错误地将传入的对象当作ObservableCollection<int>进行强制类型转换,或者方法定义的参数类型实际是ObservableCollection<int>而非int[],导致类型不匹配抛出异常。
  • 另一种可能是currentPos.Item1的实际类型并非int,而是ObservableCollection<int>,当你尝试将它传入Contains/Add/Remove方法时,触发了隐式类型转换错误,但结合错误信息来看,前者的可能性更大。

内容的提问来源于stack exchange,提问作者HyperSquid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 00:42:04