class Order
    {    public void delelt(Product pro)
        {
            orderList.Remove(pro);
        }
    }               case 4:
                        Console.WriteLine("请输入商品的ID:");
                        product.Id = Convert.ToInt32(Console.ReadLine());
                        Console.WriteLine("请输入商品名称:");
                        product.Name = Console.ReadLine();
                        Console.WriteLine("请输入商品数量:");
                        product.Count = Convert.ToInt32(Console.ReadLine());
                        order.delelt(product);
                        break;
我用属性匹配来删除    为什么就是删不掉呢??

解决方案 »

  1.   

    array.Remove("XX")
    or
    array.RemoveAt(id)
      

  2.   


    我实例过一个实体类  然后设置了相应的属性值 将对象放入arraylist中之后  我想通过输入 相关的属性值   删除  刚刚放入arraylist中的那个对象
      

  3.   


    先将对象放入arraylist中然后  根据一个对象的属性  找到  对象然后删除对象我删除不了……
      

  4.   

    ArrayList array = new ArrayList();
                string str1 = "C";
                string str2 = "S";
                string str3 = "D";
                string str4 = "N";
                array.Add(str1);
                array.Add(str2);
                array.Add(str3);
                array.Add(str4);
                array.Remove(str3);
      

  5.   

    这个是概念性错误,
    orderList.Remove(pro);
    这个pro是orderList这个数组的index,不是你的ID
    所以删除你要列出来让他点击删除那个,你就可以获得他的索引了,就可以
    orderList.Remove(索引);
      

  6.   


    啊   大哥 不是那样的啊        public void delelt(Product pro)
            {
                orderList.Remove(pro);
            }这个是我的方法   class Product
        {
            private string name;
            private int count;
            private int id;
            public Product()
            { 
            }
            public string Name
            {
                get { return Name; }
                set { name = value; }
            }
            public int Count
            {
                get { return count; }
                set { count = value; }
            }
            public int Id
            {
                get { return id; }
                set { id = value; }
            }
            public override string ToString()
            {
                return "\nProductId:"+id+ "\nProductName:" +name +"\nProductCount:"+count;
            }这个是我的对象属性类
           case 4:
                            //order = new Order();
                            Console.WriteLine("请输入商品的ID:");
                            product.Id = Convert.ToInt32(Console.ReadLine());
                            Console.WriteLine("请输入商品名称:");
                            product.Name = Console.ReadLine();
                            Console.WriteLine("请输入商品数量:");
                            product.Count = Convert.ToInt32(Console.ReadLine());
                            order.delelt(product);
                            break;
    输入相应的属性 找到对象   然后删除……但是我删除不了……
      

  7.   

    很可能是product是以后new出来的对象, orderList中即使有同id的对象,
    order.delelt(product);这句就没作用了,因为两者的引用不同。
    最简单的解决方法 Product(产品类)重载Equals方法
              
            public override bool Equals(object obj)
            {            if (obj == null ||!(obj is Product))
                {
                    return false;
                }
                return (obj as Product).id == id;
              
            }
      

  8.   

    应该这么来
    i 从0到orderList.Length-1循环
    判断id与这个orderList的ID值否相等,相等则
    orderList.Remove(i);