当前位置:编程学习 > C#/ASP.NET >>

求大仙指教删除数组中相同id的方法



这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊 --------------------编程问答-------------------- 求大侠啊 坐等
--------------------编程问答--------------------
引用 楼主 Drinkmyheart 的回复:


这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊

你可以新建立一个list 如果满足条件 就往这个list里面加入对应的值,而不是romove
--------------------编程问答-------------------- 换个写法 试试 比如
for  ( int  i  =   0 ; i  <  list.size()  -   1 ; i ++ )   {
     for  ( int  j  =  list.size()  -   1 ; j  >  i; j -- )   {
       if  (list.get(j).equals(list.get(i)))   {
         list.remove(j);
       }
     }
   }
--------------------编程问答-------------------- 应该从后往前删除,
因为remove方法 按照你之前的删除话,索引0删除后,原来索引为1的自动变为0了 --------------------编程问答--------------------
引用 2 楼 liang_show 的回复:
Quote: 引用 楼主 Drinkmyheart 的回复:



这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊

你可以新建立一个list 如果满足条件 就往这个list里面加入对应的值,而不是romove

说的对, 你既然是循环的,就不能再当前循环里romove,那样会出问题!
重新建立一个list , 通过你的循环if 找到一样的 将一个添加到list中. !!! --------------------编程问答-------------------- return cartlist.RemoveAll(item => item.ItemId == itemId && item.ParentId == "0"); --------------------编程问答-------------------- cartlist.RemoveAll(item => item.ItemId == itemId && item.ParentId == "0");
return cartlist; --------------------编程问答--------------------
引用 1 楼 Drinkmyheart 的回复:
求大侠啊 坐等
  大哥说的在明确些啊
--------------------编程问答--------------------
引用 7 楼 dongxinxi 的回复:
cartlist.RemoveAll(item => item.ItemId == itemId && item.ParentId == "0");
return cartlist;

我试过了 为什么还是不成啊
--------------------编程问答--------------------
引用 9 楼 Drinkmyheart 的回复:
Quote: 引用 7 楼 dongxinxi 的回复:

cartlist.RemoveAll(item => item.ItemId == itemId && item.ParentId == "0");
return cartlist;

我试过了 为什么还是不成啊
你这里做的 就是只删除parentid="0"的数据 对不对 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 10 楼 liang_show 的回复:
Quote: 引用 9 楼 Drinkmyheart 的回复:

Quote: 引用 7 楼 dongxinxi 的回复:

cartlist.RemoveAll(item => item.ItemId == itemId && item.ParentId == "0");
return cartlist;

我试过了 为什么还是不成啊
你这里做的 就是只删除parentid="0"的数据 对不对

对啊 --------------------编程问答--------------------
引用 2 楼 liang_show 的回复:
Quote: 引用 楼主 Drinkmyheart 的回复:



这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊

你可以新建立一个list 如果满足条件 就往这个list里面加入对应的值,而不是romove
对啊 只删除parentid="0"的
--------------------编程问答--------------------
引用 13 楼 Drinkmyheart 的回复:
Quote: 引用 2 楼 liang_show 的回复:

Quote: 引用 楼主 Drinkmyheart 的回复:



这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊

你可以新建立一个list 如果满足条件 就往这个list里面加入对应的值,而不是romove
对啊 只删除parentid="0"的

那你的循环 都不要了 直接来这一句
cartlist.RemoveAll(item => item.ParentId == "0"); --------------------编程问答-------------------- 是去重吧? 过滤筛选一遍就行了啊 --------------------编程问答-------------------- 两种方法
1\找出相同的记录ID,先保存到一个临时数组,找完后,才遍历临时数组把项给清除

2\新建一个数组,判断如果数组中不存在此记录就插入,这样新数组就为不重复数组(只用遍历一次) --------------------编程问答--------------------
引用 14 楼 liang_show 的回复:
Quote: 引用 13 楼 Drinkmyheart 的回复:

Quote: 引用 2 楼 liang_show 的回复:

Quote: 引用 楼主 Drinkmyheart 的回复:



这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊

你可以新建立一个list 如果满足条件 就往这个list里面加入对应的值,而不是romove
对啊 只删除parentid="0"的

那你的循环 都不要了 直接来这一句
cartlist.RemoveAll(item => item.ParentId == "0");

这个方法也是吧parentid="0"的给留下了 不等于“0”的给删除了
--------------------编程问答--------------------
引用 17 楼 Drinkmyheart 的回复:
Quote: 引用 14 楼 liang_show 的回复:

Quote: 引用 13 楼 Drinkmyheart 的回复:

Quote: 引用 2 楼 liang_show 的回复:

Quote: 引用 楼主 Drinkmyheart 的回复:



这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊

你可以新建立一个list 如果满足条件 就往这个list里面加入对应的值,而不是romove
对啊 只删除parentid="0"的

那你的循环 都不要了 直接来这一句
cartlist.RemoveAll(item => item.ParentId == "0");

这个方法也是吧parentid="0"的给留下了 不等于“0”的给删除了

不存在这样的问题吧,这样的删除应该没错,除非是你程序哪里写错了 --------------------编程问答--------------------
引用 18 楼 liang_show 的回复:
Quote: 引用 17 楼 Drinkmyheart 的回复:

Quote: 引用 14 楼 liang_show 的回复:

Quote: 引用 13 楼 Drinkmyheart 的回复:

Quote: 引用 2 楼 liang_show 的回复:

Quote: 引用 楼主 Drinkmyheart 的回复:



这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊

你可以新建立一个list 如果满足条件 就往这个list里面加入对应的值,而不是romove
对啊 只删除parentid="0"的

那你的循环 都不要了 直接来这一句
cartlist.RemoveAll(item => item.ParentId == "0");

这个方法也是吧parentid="0"的给留下了 不等于“0”的给删除了

不存在这样的问题吧,这样的删除应该没错,除非是你程序哪里写错了

真的 --------------------编程问答--------------------
引用 19 楼 Drinkmyheart 的回复:
Quote: 引用 18 楼 liang_show 的回复:

Quote: 引用 17 楼 Drinkmyheart 的回复:

Quote: 引用 14 楼 liang_show 的回复:

Quote: 引用 13 楼 Drinkmyheart 的回复:

Quote: 引用 2 楼 liang_show 的回复:

Quote: 引用 楼主 Drinkmyheart 的回复:



这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊

你可以新建立一个list 如果满足条件 就往这个list里面加入对应的值,而不是romove
对啊 只删除parentid="0"的

那你的循环 都不要了 直接来这一句
cartlist.RemoveAll(item => item.ParentId == "0");

这个方法也是吧parentid="0"的给留下了 不等于“0”的给删除了

不存在这样的问题吧,这样的删除应该没错,除非是你程序哪里写错了

真的
 我加你 我帮你调试
--------------------编程问答-------------------- 冒泡写过的吧?你不觉得这和冒泡很相似吗?
其实就是遍历两两比较,去重。 --------------------编程问答--------------------
引用 20 楼 liang_show 的回复:
Quote: 引用 19 楼 Drinkmyheart 的回复:

Quote: 引用 18 楼 liang_show 的回复:

Quote: 引用 17 楼 Drinkmyheart 的回复:

Quote: 引用 14 楼 liang_show 的回复:

Quote: 引用 13 楼 Drinkmyheart 的回复:

Quote: 引用 2 楼 liang_show 的回复:

Quote: 引用 楼主 Drinkmyheart 的回复:



这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊

你可以新建立一个list 如果满足条件 就往这个list里面加入对应的值,而不是romove
对啊 只删除parentid="0"的

那你的循环 都不要了 直接来这一句
cartlist.RemoveAll(item => item.ParentId == "0");

这个方法也是吧parentid="0"的给留下了 不等于“0”的给删除了

不存在这样的问题吧,这样的删除应该没错,除非是你程序哪里写错了

真的
 我加你 我帮你调试
646059248我的扣扣号 你的是多少
--------------------编程问答--------------------
引用 21 楼 leo_changyu 的回复:
冒泡写过的吧?你不觉得这和冒泡很相似吗?
其实就是遍历两两比较,去重。

有吗?? --------------------编程问答--------------------
引用 20 楼 liang_show 的回复:
Quote: 引用 19 楼 Drinkmyheart 的回复:

Quote: 引用 18 楼 liang_show 的回复:

Quote: 引用 17 楼 Drinkmyheart 的回复:

Quote: 引用 14 楼 liang_show 的回复:

Quote: 引用 13 楼 Drinkmyheart 的回复:

Quote: 引用 2 楼 liang_show 的回复:

Quote: 引用 楼主 Drinkmyheart 的回复:



这个方法为什么将ParentId = "0"的没删除 把不为“0”的删除了啊

你可以新建立一个list 如果满足条件 就往这个list里面加入对应的值,而不是romove
对啊 只删除parentid="0"的

那你的循环 都不要了 直接来这一句
cartlist.RemoveAll(item => item.ParentId == "0");

这个方法也是吧parentid="0"的给留下了 不等于“0”的给删除了

不存在这样的问题吧,这样的删除应该没错,除非是你程序哪里写错了

真的
 我加你 我帮你调试
大哥 你在吗 我扣扣  646059248 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,