List<> 集合 删除指定行

  不多说,直接上代码

 public class Name
    {
        public string NameInfo { get; set; }
    }

  删除值为Name2的行

 static void Main(string[] args)
        {
            string[] s = new string[2];
            List<Name> nList = new List<Name>();
            for (int i = 0; i < 5; i++)
            {
                Name n = new Name()
                {
                    NameInfo = "Name" + i
                };

                nList.Add(n);
            }

            Console.WriteLine();
            var someOne = "Name2";

            for (int i = 0; i < nList.Count; i++)
            {
                if (someOne == nList[i].NameInfo)
                {
                    nList.RemoveAt(i);
                    //输出下一个参数
                    Console.WriteLine(nList[++i].NameInfo);
                }
            }           
            for (int i =0; i<nList.Count; i++)
            {
                Console.Write(nList[i].NameInfo + "\t");
            }
            Console.ReadKey();
        }

  仔细的同学会发现一个错误:Name2在nList<Name>是第3个即nList[2],删除之后下一个参数应该是nList[3] Name3,但是最后程序结果是Name4。

  原因:当前元素被删除之后,后面的元素会自动前移一位.也就是删除Name2后nList[2]就变成Name3。

  改进:逆反循环,for循环从后开始往前循环

     for (int i = nList.Count - 1; i >= 0; i--)
            {
                if (someOne == nList[i].NameInfo)
                {
                    nList.RemoveAt(i);
                    //输出下一个参数
                    Console.WriteLine(nList[--i].NameInfo);
                }
            }
时间: 2024-11-05 15:17:48

List<> 集合 删除指定行的相关文章

sed 删除最后几行 和删除指定行 awk使用

sed 删除最后几行 和删除指定行 转载原文链接:http://blog.51cto.com/lspgyy/1305489 sed 想删除文件中的指定行,是可以用行号指定也可以用RE来匹配的. 删除指定的行[可以指定行号删除.匹配字符串来删除] [[email protected] ~]# cat -n seq.txt 1 ok i will help you 2 understand sed usage 3 how to use it 4 and we should use it in vie

REDHAT一总复习1 vim编辑器的使用 删除所有者列 删除指定行

将文件/home/student/vimfile.txt 复制到server 上的/home/student/longlisting.txt . 根据下列要求,使用vim编辑器更改 /home/student/longlisting.txt 文件: . 删除文件所有者列.不要删除任何空格. .删除Documents行和Pictures行. .完成编辑时保存文件. 将文件 /home/student/vimfile.txt 复制到 /home/student/longlisting.txt $ c

遍历list集合删除指定元素方法

今天的在项目中犯的一个错误记录一下: 刚开始粗心写成for喜欢遍历 这样会出现下表越界的问题 应该是iterate遍历移除集合中的元素 以下是转载: 一种错误的方式: for(int i = 0 , len= list.size();i<len;++i){     if(list.get(i)==XXX){          list.remove(i);     }   } 上面这种方式会抛出如下异常: Exception in thread "main" java.lang.

linux删除指定行&amp;删除行首空格&amp;替换字符

打印并删除2~1000行 nl /etc/passwd | sed '2,1000d' |more 删除行首空格 sed 's/^[][ ]*//g' file 替换分隔符 说明:文件中数据是由一个或者制表位(多个空格)分隔开的,将这些空格替换为特定字符. 解决方法:sed -e 's/[ ][ ]*/,/g' filename 或者:sed -e 's/[[:space:]][[:space:]]*/ /g' filename 这样将空格或者制表位替换为“逗号”了.

Sed删除和添加指定行的上下行的数据

课题一:删除匹配行的上一行和下一行数据 1.删除匹配行的上一行和下一行: sed -i -e '/string/{n;d}' -e '$!N;/\n.*string/!P;D' filename 2.删除匹配到特定字符所在行的上一行 sed -i -e '$!N;/\n.*string/!P;D' filename 3.删除匹配到特定字符所在行的下一行 sed -i -e '/string/{n;d}' filename 4.sed中使用变量,删除匹配行的上一行和下一行: AA=string #

删除datatable的行后,出现“不能通过已删除的行访问该行的信息”的错误,即DeletedRowInaccessibleException

删除datatable的行后,出现"不能通过已删除的行访问该行的信息"的错误 =========================================================== 采用datatable.Rows[i].Delete()删除行后再访问该表时出现出现"不能通过已删除的行访问该行的信息"的错误.原因如下: Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态

Js实现动态添加删除Table行示例

<table cellpadding="0" cellspacing="0" border="1" style="margin:auto; width:96%;" id="LearnInfoItem"> <tr > <td colspan="8" bgcolor="#96E0E2" style="height:30px;&quo

jQuery删除表格指定行代码实例

jQuery删除表格指定行代码实例:本章节介绍一下如何删除表格中指定的行,代码非常的简单,直接上代码: $("table tr").eq(2).remove(); 相关阅读:1.eq()函数可以参阅jQuery的eq()方法一章节.2remove()函数可以参阅jQuery的remove()方法一章节. 原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=13213 更多内容可以参阅:http://www.soft

sed在指定行上删除和添加字符

欢迎转载!转载时请注明出处:http://blog.csdn.net/nfer_zhuang/article/details/44020599 引言 我在一个项目中需要发布版本,两个客户的需求基本相同,只有是在一个fm34(消回音)模块上一个有该功能,另外一个没有.那么就存在在发版本的时候根据需要打开和关闭关于fm34相关的代码. 其中的一个就是是否需要inmod一个ko文件,我的处理是: 在脚本中有inmod该ko的一行代码,但是默认是被注释掉的 在给需要该功能的客户发布版本时,通过sed将改