千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > c#遍历List的多方面详解

c#遍历List的多方面详解

来源:千锋教育
发布人:xqq
时间: 2023-11-23 13:11:38 1700716298

一、遍历List的基本方法

在c#中,List是一个常用的数据结构,我们经常需要对其中的元素进行遍历。c#提供了多种遍历方式,其中最常用的是foreach语句。


List myList = new List();
myList.Add(1);
myList.Add(2);
myList.Add(3);
foreach (var item in myList)
{
    Console.WriteLine(item);
}

以上代码中,我们首先定义了一个List类型的变量myList,并往其中添加了三个元素。然后通过foreach语句对myList中的元素进行遍历,并将每个元素赋给变量item,再通过Console.WriteLine()函数输出item的值。

需要注意的是,遍历List时应当确保List中有元素,否则foreach语句会直接跳过。对于空的List,可以通过判断其Count属性是否为0来进行处理。


List myList = new List();
if (myList.Count == 0){
    Console.WriteLine("List is empty");
}
foreach (var item in myList)
{
    Console.WriteLine(item);
}

二、使用for循环遍历List

除了foreach语句,我们还可以使用for循环来遍历List。相比foreach语句,for循环在一些情况下表现更为优异,尤其当需要对List中元素进行修改时。


List myList = new List();
myList.Add(1);
myList.Add(2);
myList.Add(3);
for (int i = 0; i < myList.Count; i++)
{
    Console.WriteLine(myList[i]);
}

以上代码中,我们使用for循环依次对每个元素进行访问,通过索引i来获取List中的元素。

需要注意的是,在使用for循环遍历List时,应该保证List在遍历期间不会发生增删操作,否则可能会导致程序抛出异常。

三、List遍历的性能比较

对于相同的List对象,在遍历时使用不同的方法,可能会对程序的性能产生不同程度的影响。我们来通过实验对foreach和for循环两种方法进行性能比较。

测试代码如下:


List myList = new List();
for (int i = 0; i < 100000; i++)
{
    myList.Add(i);
}
Stopwatch sw = new Stopwatch();
sw.Start();
foreach (var item in myList)
{
    int temp = item;
}
sw.Stop();
Console.WriteLine($"Foreach: {sw.ElapsedMilliseconds} ms");

sw.Restart();
for (int i = 0; i < myList.Count; i++)
{
    int temp = myList[i];
}
sw.Stop();
Console.WriteLine($"For loop: {sw.ElapsedMilliseconds} ms");

以上代码中,我们首先创建了一个包含10万个元素的List对象myList。然后使用Stopwatch类计时,对myList使用foreach和for循环两种方法进行遍历,并记录下每种方法所需的时间。

在我的电脑上运行该测试代码,得到的结果如下:


Foreach: 0 ms
For loop: 5 ms

由此可见,当需要对List进行简单遍历操作时,foreach语句具有更好的性能表现。

四、根据条件遍历List

在实际应用中,我们有时需要根据特定条件选择性地遍历List中的元素。这时候,我们可以使用Where()方法,该方法可以根据指定的条件筛选出符合条件的元素,返回包含这些元素的新List。


List myList = new List();
myList.Add(1);
myList.Add(2);
myList.Add(3);
List newList = myList.Where(x => x > 1).ToList();
foreach (var item in newList)
{
    Console.WriteLine(item);
}

以上代码中,我们首先定义了一个List类型的变量myList,并往其中添加了三个元素。然后使用Where()方法筛选出myList中所有大于1的元素,并将它们构造成一个新的List对象newList,最后通过foreach语句对newList中的元素进行遍历,并将每个元素赋给变量item。

五、使用List.ForEach()方法遍历List

List对象中还有另一种遍历方式,即使用List.ForEach()方法。与foreach语句类似,List.ForEach()方法也是对List中的元素进行访问,不同的是List.ForEach()方法是调用List对象自身的方法进行遍历。


List myList = new List();
myList.Add(1);
myList.Add(2);
myList.Add(3);
myList.ForEach(x => Console.WriteLine(x));

以上代码中,我们首先定义了一个List类型的变量myList,并往其中添加了三个元素。然后使用List.ForEach()方法遍历myList中的所有元素,并将每个元素传递给Lambda表达式x => Console.WriteLine(x) 进行处理。

六、总结

本文详细介绍了c#中List对象的遍历方法及其应用技巧,包括使用foreach语句、for循环、Where()方法、List.ForEach()方法等。在实际应用中,应根据具体需求来选择合适的遍历方法,并注意不同方法之间的性能差异。希望读者能够通过本文的介绍,更好地应用c#中的List对象。

tags: c++换行
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT