var b = data_list.DataList.Count();
                while (b != 0)
                {
                    var a = data_list.DataList.ToList()[0];
                    foreach (var i in data_list.DataList.ToList())
                    {
                        //var get_stock = _orderService.get_erp_stock_list(new StockQueryRequest {commodity = i.commodity}, merchant_id);
                        if (i.commodity_name.Equals(a.commodity_name))
                        {
                            data_list.DataList.ToList().RemoveAt(1);
                        }
                        b = b - 1;
                    }
                 }

解决方案 »

  1.   

    红色部分肯定有问题。
    data_list.DataList.ToList().RemoveAt(1)
      

  2.   

            //
            // 摘要:
            //     创建 System.Collections.Generic.List`1 从 System.Collections.Generic.IEnumerable`1。
            //
            // 参数:
            //   source:
            //     System.Collections.Generic.IEnumerable`1 创建 System.Collections.Generic.List`1
            //     从。
            //
            // 类型参数:
            //   TSource:
            //     中的元素的类型 source。
            //
            // 返回结果:
            //     一个 System.Collections.Generic.List`1 ,其中包含输入序列中的元素。
            //
            // 异常:
            //   T:System.ArgumentNullException:
            //     source 为 null。
            public static List<TSource> ToList<TSource>(this IEnumerable<TSource> source);ToList()会得到一个新的集合,原集合不会变
      

  3.   

    我也觉得是ToList()的问题但是不知道怎么改一下
      

  4.   

    总感觉你走了弯路...
    data_list.DataList 是一个结果集吧?你无非是想要对这个结果集进行赛选吧?那你直接使用表达式得到新的结果集就行了.
      

  5.   

     data_list.DataList.ToList().RemoveAt(1);   改成   data_list.DataList.ToList().Remove(i);
      

  6.   

    IList<string> l=new List<string>();
                l = l.Distinct().ToList();    
    不知道你什么结构 这个可以去重  
      

  7.   

     data_list.DataList.select(x=>x.commodity_name != a.commodity_name)
      

  8.   

    不要在foreach里面删除列表,用for循环 for(int=list.count,i>=0;i++),或者Iterator.参考https://www.cnblogs.com/huzi007/p/10483857.html
      

  9.   

    给你看一下实际的。主要还是tolist后,操作的数据源就不一样了。
    会产生新的泛型集合