2

很抱歉,大部分节目都是西班牙语,因为那是我的主要语言,有点乱,但很短。

using System;
using System.Linq;
using System.Collections.Generic;

namespace Tarea_2
{
    class Demo
    {
        static void Main()
        {
            Console.Write("¿Cuántos números desea entrar? ");
              int cun = Int32.Parse(Console.ReadLine());
            Console.WriteLine();
            Console.WriteLine("Entre "+cun+" números");
            Console.WriteLine("Oprima 'Enter' después de cada uno.");
            //unaLista recoge los valores directamente del usuario
              List<int> unaLista = new List<int>();
              for (int i = 0; i < cun; i++)
                  unaLista.Add(Int32.Parse(Console.ReadLine()));
            Console.WriteLine();
            Console.Write("¿Qué cantidad desea sumar a cada número? ");
              int sum = Int32.Parse(Console.ReadLine());
            Console.WriteLine();
            //otraLista los copia de unaLista y les suma la variable "sum"
              **List<int> otraLista = new List<int>();
                          otraLista.AddRange(unaLista);**

            Mostrar(unaLista);
            Mostrar(otraLista);
        }//End of Main

        public static void Mostrar(List<int> a)
        {
            foreach (int valor in a)
                Console.WriteLine(valor);
                Console.WriteLine();
        }//End of Mostrar
    }//End of Demo
}//End of namespace

无论如何,我将一个来自用户的变量保存在“sum”上,我需要对通过 AddRange 从“unaLista”复制到“otraLista”的每个数字的总和求和。这可能吗?

编辑:我总是用数组做这些事情,但这是我第一次使用列表(因为应该更好),非常感谢,这真的很好:

列表 otraLista = unaLista.Select(i => i + sum).ToList();

预期结果如下:

¿ Cuántos números desea entrar?3

Entre 3 números。Oprima 'Enter' después de cada uno。

20

30

40

¿ Qué cantidad desea sumar a cada número? 100

20

30

40

120

130

140

按“Enter”完成...

4

1 回答 1

4

您可以使用 LINQ 执行此操作:

otraLista = otraLista.Select(i => i + sum).ToList();

或者,如果您想在 AddRange 之前执行此操作,您可以跳过new List<int>andAddRange并改为执行此操作:

List<int> otraLista = unaLista.Select(i => i + sum).ToList();

确保你是

using System.Linq;
于 2012-04-21T16:25:15.100 回答