【问题标题】:Remove object from List从列表中删除对象
【发布时间】:2013-02-21 04:28:46
【问题描述】:

我的列表是

public List<BaseHomePage.QueueListItem> QueueDataSource
   {
    get { return this._queueDataSource; }
    set { this._queueDataSource = value; }
   }

我想从列表中删除对象,我的代码是

for (int i = 0; i < _queueDataSource.Count; i++)
{
    object queue = _queueDataSource[i];

    if (objQuery.BranchOutQueue)
    {
        this._queueDataSource.Remove(queue);   //Here I want to getting error
    }
}

错误:最好的重载方法匹配 system.collections.Generic.List.Remove(BaseHome.QueueList) 有一些无效的参数

【问题讨论】:

    标签: c# winforms for-loop


    【解决方案1】:

    不要使用object,而是使用var

    var queue = _queueDataSource[i];
    

    或者具体来说你可以使用:

    BaseHomePage.QueueListItem queue = _queueDataSource[i];
    

    您收到错误的原因是 Remove 需要与 List 相同类型的参数,因为您正在以 object 类型重新运行对象,它不兼容。

    【讨论】:

    • +1 我们想要的。基于index 还是基于object:)
    【解决方案2】:

    只需使用RemoveAt 代替object 的基础

         for (int i = 0; i < _queueDataSource.Count; i++)
            {
                if (IsSuccess)
                 _queueDataSource.RemoveAt(i)
            }
    

    【讨论】:

      猜你喜欢
      • 2021-08-03
      • 2020-04-17
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 2019-01-25
      相关资源
      最近更新 更多