我建立了以下程序,但是出现超出范围的错误。基本上,我想将值从一个列表复制到另一个列表(从a
到b
):
List<int> a = new List<int> { 99, 2, 3, 4, 5, 6 };
List<int> b = new List<int>(6);
for ( int i = 0; i < a.ToArray().Length; i++ )
{
a[i].ToString().Insert(0, b[i].ToString());
}
for ( int i = 0; i < a.ToArray().Length; i++ )
{
Console.WriteLine(b[i]);
}
Console.ReadKey();
答案 0 :(得分:1)
只需在第一个列表上调用ToList()
,即可将值从第一个列表复制到第二个列表:
List<int> uzytkownik = new List<int>() { 99, 2, 3, 4, 5, 6 };
List<int> uzytkownik1 = uzytkownik.ToList();//only values are copied, not the reference to the first list
for (int i = 0; i < uzytkownik1.Count; i++)
{
Console.WriteLine(uzytkownik1[i]);
}
Console.ReadKey();
如果必须使用for循环,则:
List<int> uzytkownik = new List<int>() { 99, 2, 3, 4, 5, 6 };
List<int> uzytkownik1 = new List<int>();
for (int i = 0; i < uzytkownik.Count; i++)
{
uzytkownik1.Add(uzytkownik[i]);
}
for (int i = 0; i < uzytkownik1.Count; i++)
{
Console.WriteLine(uzytkownik1[i]);
}
Console.ReadKey();
答案 1 :(得分:0)
看看Array.CopyTo方法。
https://docs.microsoft.com/en-us/dotnet/api/system.array.copyto?view=netframework-4.8
答案 2 :(得分:0)
List<T>
已经具有进行此类工作的方法。 List<T>.AddRange(IEnumerable<T>)
List<int> a = new List<int> { 99, 2, 3, 4, 5, 6 };
List<int> b = new List<int>(6);
b.AddRange( a );