您的位置:

C# List遍历详解

一、遍历方式概述

List是C#中非常常用的集合类型,它支持多种遍历方式,包括for循环、foreach循环、while循环等常规方式。而对于更高级的需求,还可以通过lambda表达式和LINQ查询来实现。下面分别对这些方式进行详细介绍。

二、for循环遍历

for循环是最常见的遍历方式,使用起来非常简单,可以根据索引来访问List中的元素。但是需要注意的是,在使用for循环时,不能修改List的长度,否则会出现问题。

List<int> list = new List<int>();
for (int i = 0; i < list.Count; i++)
{
    Console.WriteLine(list[i]);
}

三、foreach循环遍历

foreach循环是使用最为广泛的遍历方式,它不需要知道List的长度,也不需要使用索引来访问List中的元素。通过foreach,我们可以轻松地遍历List中的所有元素。

List<int> list = new List<int>();
foreach (int item in list)
{
    Console.WriteLine(item);
}

四、while循环遍历

while循环可以通过索引遍历List中的元素,也可以通过条件语句来遍历List中的元素。不过需要注意的是,在使用while循环遍历List时,需要手动处理索引变量的值。

List<int> list = new List<int>();
int i = 0;
while (i < list.Count)
{
    Console.WriteLine(list[i]);
    i++;
}

五、lambda表达式遍历

lambda表达式是C#中非常强大的特性,它可以简单明了地描述一个操作,并把它作为参数传递给其他方法。在List中,我们可以使用lambda表达式来筛选、过滤、排序等操作。

List<int> list = new List<int>();
list.ForEach(item => Console.WriteLine(item));

六、LINQ查询遍历

LINQ查询是一个非常强大的工具,它可以使用查询表达式来筛选、过滤、排序等操作。在List中,我们可以使用LINQ查询来实现复杂的遍历操作。

List<int> list = new List<int>();
var result = from item in list
             where item > 0
             orderby item descending
             select item;
             
foreach (int item in result)
{
    Console.WriteLine(item);
}

七、小标题1:CBA赛程

1、CBA是中国顶级的职业篮球联赛,每年都会有不同的比赛赛程。在使用List存储CBA比赛赛程时,我们可以使用foreach循环遍历List的每一个元素,然后输出比赛的相关信息,如比赛日期、对阵双方、比分等。

class CBAGame
{
    public DateTime Date { get; set; }
    public string Team1 { get; set; }
    public string Team2 { get; set; }
    public int Score1 { get; set; }
    public int Score2 { get; set; }
}

List<CBAGame> games = new List<CBAGame>();
foreach (CBAGame game in games)
{
    Console.WriteLine("日期:{0}", game.Date.ToString("yyyy年MM月dd日"));
    Console.WriteLine("比赛:{0} vs {1}", game.Team1, game.Team2);
    Console.WriteLine("比分:{0} - {1}", game.Score1, game.Score2);
}

八、小标题2:Clash

2、Clash是一款热门手游,同时也是一款电子竞技游戏。在使用List存储Clash比赛数据时,我们可以使用for循环遍历List的每一个元素,然后根据不同的数据类型输出相关信息。

class ClashGame
{
    public int Rank { get; set; }
    public string Name { get; set; }
    public int Trophies { get; set; }
    public int Wins { get; set; }
}

List<ClashGame> games = new List<ClashGame>();
for (int i = 0; i < games.Count; i++)
{
    Console.WriteLine("排名:{0}", games[i].Rank);
    Console.WriteLine("名字:{0}", games[i].Name);
    Console.WriteLine("奖杯数:{0}", games[i].Trophies);
    Console.WriteLine("胜场数:{0}", games[i].Wins);
}

九、小标题3:CCTV5节目表

3、CCTV5是中国最大的体育频道,每天都会播出众多赛事。在使用List存储CCTV5节目表时,我们可以使用while循环遍历List的每一个元素,然后根据不同的时间段输出相关节目。

class TVProgram
{
    public DateTime StartTime { get; set; }
    public DateTime EndTime { get; set; }
    public string Name { get; set; }
}

List<TVProgram> programs = new List<TVProgram>();
int i = 0;
while (i < programs.Count)
{
    Console.WriteLine("{0} - {1}:{2}", programs[i].StartTime.ToString("HH:mm"), programs[i].EndTime.ToString("HH:mm"), programs[i].Name);
    i++;
}

十、小标题4:C反应蛋白高说明什么

4、C反应蛋白是体内一种常见的蛋白质,它的水平可以用于监测身体的炎症反应程度。在使用List存储C反应蛋白水平数据时,我们可以使用lambda表达式遍历List的每一个元素,并计算平均值。

List<double> crp = new List<double>();
double average = crp.Average();
Console.WriteLine("C反应蛋白平均水平:{0}", average);

十一、小标题5:C开头的火车是什么车

5、C开头的火车是指由中国铁路总公司运营的高速列车,其中包括CRH1、CRH2、CRH3、CRH5、CRH6、CRH380等多个子系列。在使用List存储C系列火车信息时,我们可以使用LINQ查询来筛选并输出相关数据。

class Train
{
    public string Name { get; set; }
    public string Series { get; set; }
    public int MaxSpeed { get; set; }
}

List<Train> trains = new List<Train>();
var result = from train in trains
             where train.Series.StartsWith("CRH")
             select train.MaxSpeed;
             
foreach (int speed in result)
{
    Console.WriteLine("最高时速:{0} km/h", speed);
}

十二、小标题6:Chat GPT人工智能

6、Chat GPT是一个基于人工智能技术的对话机器人,它可以为用户提供智能化的对话体验。在使用List存储Chat GPT对话数据时,我们可以使用foreach循环遍历List的每一个元素,并根据不同的对话类型进行相关处理。

class ChatData
{
    public string Type { get; set; }
    public string Content { get; set; }
}

List<ChatData> data = new List<ChatData>();
foreach (ChatData item in data)
{
    switch (item.Type)
    {
        case "Text":
            Console.WriteLine(item.Content);
            break;
        case "Image":
            // 处理图片
            break;
        case "Link":
            // 处理链接
            break;
        default:
            break;
    }
}