for(int i=0i<list.counti++)
{
if(list[i])
{
list.RemoveAt(i)
}
}
如果这样循环,肯定不对,
{A B C D E F G H} 假设当前遍历到D(i=3),移除,接着遍历i=4(F), 此时跳过了E(i=3)
2、使用倒序遍历,这个问题就解决了
for(int i=list.Count-1i>=0i--)
{
if(list[i])
{
list.RemoveAt(i)
}
}
在C#的List<T>类型中有一个函数叫做Remove(您的值)就可以移除指定的一行数据
尤其是您的String类型
但是您要注意:
如果有两个String内容相同
例如这个List有两个字符A
那么list.Remove("A")
就会移除两行。
另外您的想法是移除包含有指定字符的.
那么您可以这样写
list.Remove(list.First(obj=>{return obj.index("XYZ")!=-1}))
这样一句话移除.
list.clear()可以一次性清空所有元素。list.retainAll(Collection c)可以移除所有不在c里的元素,list.removeAll(Collection c)可以移除所有在c里的元素。其它的情况,只好一个个删了。如果是数据库的话,就必须读出所有想删除的记录,比如你说的“有一个全选按钮,点击了以后都选中了,然后点击删除按钮”,那么服务器后台收到删除按钮发送的那些kh.Kehuid,就将所有这些id都用“,”隔开拼接起来,比如“1,3,4,6”这样一个字符串,然后用类似
DELETE * FROM kehu WHERE Kehuid in (......)
....那里就是这个字符串,就可以批量删除数据库内数据了。但这个其实不是Java的范畴而是SQL的范畴了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)