如何在C#中不使用foreach的情况下从列表复制项目到列表?

List <T>是强类型对象的集合,可以通过索引对其进行访问,并具有用于排序,搜索和修改列表的方法。它是System.Collection.Generic命名空间下的ArrayList的常规版本。

List <T>与ArrayList等效,它实现了IList <T>。

它位于System.Collection.Generic命名空间下。

List <T>可以包含指定类型的元素。它提供编译时类型检查,并且不执行装箱/拆箱,因为它是通用的。

可以使用Add()AddRange()方法或collection-initializer语法添加元素。

可以通过传递索引(例如myList [0])来访问元素。索引从零开始。与ArrayList相比,List <T>的执行速度更快,出错更少。

可以通过索引,for / foreach循环以及使用LINQ查询来访问列表。列表的索引从零开始。

在方括号中传递索引以访问单个列表项,与数组相同。使用foreach或for循环迭代List <T>集合。

方法1

class Program{
   public static void Main(){
      List<int>originalList=new List<int>(){1,2,3,4,5,7,8,9};
      List<Int32>copy = new List<Int32>(originalList);
      foreach (var item in copy){
         System.Console.WriteLine(item);
      }
      Console.ReadLine();
   }
}

输出结果

1
2
3
4
5
7
8
9

方法2

class Program{
   public static void Main(){
      List<int>originalList = new List<int>() { 1, 2, 3, 4, 5, 7, 8, 9 };
      List<Int32> copy = originalList.ToList();
      foreach (var item in copy){
         System.Console.WriteLine(item);
      }
      Console.ReadLine();
   }
}

输出结果

1
2
3
4
5
7
8
9

方法3

class Program{
   public static void Main(){
      List<int> originalList = new List<int>() { 1, 2, 3, 4, 5, 7, 8, 9 };
      List<Int32> copy = originalList.GetRange(0, 3);
      foreach (var item in copy){
         System.Console.WriteLine(item);
      }
      Console.ReadLine();
   }
}

输出结果

1
2
3