List遍历删除 或取指定的前N项

 1     class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             /*
 6              * List遍历删除 或取指定的前N项
 7             */
 8             List<PerSon> listPer = CreateListPer();
 9 
10             // 1、输出项
11             Console.WriteLine("输出listPer项");
12             foreach (PerSon per in listPer)
13             {
14                 Console.WriteLine("Id:" + per.Id + " Name:" + per.name);
15             }
16 
17             //2、删除15条之后的数据
18             //遍历删除索引大于50的项
19             //将listPer的项复制到listPerTemp里面 如果直接用“=”的话,listPerTemp删除索引大于15的项,listPer大于15的项也会删掉
20             List<PerSon> listPerTemp = new List<PerSon>(listPer.ToArray());
21             //这将复制listPer中的所有项目到listPerTemp 
22             //listPer.ForEach(i => listPerTemp.Add(i)); 
23             listPer.ForEach(i => listPerTemp.Add(i));
24             for (int i = listPerTemp.Count - 1; i >= 0; i--)
25             {
26                 if (i >= 15)
27                 {
28                     listPerTemp.RemoveAt(i);
29                 }
30             }
31             Console.Write("\n");
32             // 3、输出项
33             Console.WriteLine("输出listPerTemp项");
34             foreach (PerSon per in listPerTemp)
35             {
36                 Console.WriteLine("Id:" + per.Id + " Name:" + per.name);
37             }
38 
39             //
40             Console.Write("\n");
41             Console.WriteLine("输出listPer项");
42             foreach (PerSon per in listPer)
43             {
44                 Console.WriteLine("Id:" + per.Id + " Name:" + per.name);
45             }
46 
47             Console.Write("\n");
48             //除了用移除的方法获取索引小于15的项,还可以用.take(15);  
49             var result = from r in listPer
50                          select r;
51 
52             result = result.Take(15);
53             foreach (var c in result)
54             {
55                 Console.WriteLine("Id:" + c.Id + " Name:" + c.name);
56             }
57 
58             Console.Write("\n");
59            //或者直接take
60             listPer = listPer.Take(15).ToList();
61             foreach (PerSon per in listPer)
62             {
63                 Console.WriteLine("Id:" + per.Id + " Name:" + per.name);
64             }
65             Console.ReadKey();
66         }
67 
68         private static List<PerSon> CreateListPer()
69         {
70             List<PerSon> listper = new List<PerSon>();
71             PerSon per = new PerSon();
72             for (int i = 1; i <= 20; i++)
73             {
74                 per = new PerSon();
75                 per.Id = i;
76                 per.name = "N-" + i;
77                 listper.Add(per);
78             }
79 
80             return listper;
81         }
82     }
83 
84     public class PerSon
85     {
86         /// <summary>
87         /// 编号
88         /// </summary>
89         public int Id { get; set; }
90 
91         /// <summary>
92         /// 名称
93         /// </summary>
94         public string name { get; set; }
95     }

 

转载于:https://www.cnblogs.com/haibing0107/p/7878658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值