使用函数添加由逗号分隔的整数列表

时间:2017-06-09 16:56:21

标签: c# .net arrays methods

  

输入:5,5,5,5

     

输出:5 + 5 + 5 + 5 = 20

我正在尝试添加以逗号或连字符分隔的整数列表。我创造了3个功能。 (请原谅我现在的变量名称)

  1. delimit函数删除逗号,连字符和空格,并将结果存储在integerList数组中。
  2. intConvertedList函数将字符串数组元素转换为整数类型。
  3. sumOfNumbers函数在数组中添加元素。
  4. 我正在努力将delimit函数结果传递给intConvertedList,最后添加intConvertedList中的所有元素。请告诉我如何在main方法中调用函数。

    namespace SumOfTwoNum
    {
        class Program
        {
            static void printArray(int[] arr)
            {
                Console.WriteLine("\nElements of array is: \n");
                foreach (int i in arr)
                {
                    Console.Write("\t{0}", i);
                }
                Console.WriteLine("\n");
            }
    
            static void delimit(string arr2)
            {
                char[] delimiters = new char[] { ',', '-', ' ' };
                string[] integersList = arr2.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
                foreach (string value in integersList)
                {
                    Console.WriteLine(value);
                }       
    
            }
    
            static void intConvertedList(string[] arr3)
            {
    
                int[] intConvertedList = new int[arr3.Length];
                for (int i = 0; i < intConvertedList.Length; i++)
                {
                    intConvertedList[i] = int.Parse(arr3[i]);
                }
            }
    
            static void sumOfNumbers(int[] arr4)
            {
                int sum = 0;
                foreach (int number in arr4)
                {
                    sum += number;
                }
                Console.WriteLine("Total: " + String.Join(" + ", arr4) + $" = {sum}");
                return;
            }
    
            static void Main(string[] args)
            {
    
                Console.Write(@"Enter list of integers seperated by comma (,) or hyphen (-): ");
                string numbers = Convert.ToString(Console.ReadLine());
    
                delimit(numbers);
    
            }
        }
    }
    

3 个答案:

答案 0 :(得分:1)

你的intConvertedList方法没有返回任何内容。

在该函数中,创建一个新的int数组,并从输入的string数组中构建它。最后,返回int数组以进行进一步处理

如下:

static int[] intConvertedList(string[] arr3)
    {

        int[] intConvertedList = new int[arr3.Length];
        for (int i = 0; i < intConvertedList.Length; i++)
        {
            intConvertedList[i] = int.Parse(arr3[i]);
        }
        return intConvertedList;
    }

事实上,你的方法都没有返回任何东西。您应该将您的方法视为输入和输出,并考虑您想要将它们放入其中的内容,以及您希望从中获得的内容。然后你需要&#34;返回&#34;你想要的东西。

答案 1 :(得分:0)

您可以使用String Join和LINQ Sum来简化大量此操作。

var numStr = "5, 6, 7, 8";
var numbers = numStr.Split(new char[] { ',', '-', ' ' }, StringSplitOptions.RemoveEmptyEntries);
var numbersAddStr = String.Join(" + ", numbers);

Console.WriteLine($"Output: {numbersAddStr} = {numbers.Sum(v => Convert.ToDouble(v))}");

或者也可以使用Aggregate

var numbersAddStr = numbers.Aggregate(new StringBuilder(),
    (builder, element) => builder.Append(" + ").Append($"{element}"),
    builder => builder.Remove(0,3) // removes the leading " + "
        .ToString());

答案 2 :(得分:0)

static void Main(String[] args) {
        string sNumbers = "1,2,3,4,5";
        int sum = 0;           
        int[] array = sNumbers.Split(',').Select(str => int.Parse(str)).ToArray();
        for (int i = 0; i < array.Length; i++) {
            sum = sum + array[i];
        }
        string sumString = string.Join(" + ", array) + " = ";
        Console.WriteLine(sumString + sum);
        Console.ReadKey();           
    }

这会输出您要求的内容。

希望它有所帮助。