Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用函数添加由逗号分隔的整数列表_C#_.net_Arrays_Methods - Fatal编程技术网

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

C# 使用函数添加由逗号分隔的整数列表,c#,.net,arrays,methods,C#,.net,Arrays,Methods,输入:5,5,5,5 输出:5+5+5+5=20 我试图添加一个由逗号或连字符分隔的整数列表。我已经创建了3个函数。(请原谅我的变量名) diffract函数删除逗号、连字符和空格,并将结果存储在整数列表数组中 intConvertedList函数将字符串数组元素转换为整数类型 sumofNumber函数将元素添加到数组中 我正在努力将定界函数结果传递给intConvertedList,最后,添加intConvertedList中的所有元素。请告诉我在main方法中如何调用函数 namespac

输入:5,5,5,5

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

我试图添加一个由逗号或连字符分隔的整数列表。我已经创建了3个函数。(请原谅我的变量名)

  • diffract
    函数删除逗号、连字符和空格,并将结果存储在整数列表数组中
  • intConvertedList
    函数将字符串数组元素转换为整数类型
  • sumofNumber
    函数将元素添加到数组中
  • 我正在努力将
    定界
    函数结果传递给
    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);
    
            }
        }
    }
    
    namespace SumOfTwoNum
    {
    班级计划
    {
    静态void打印数组(int[]arr)
    {
    Console.WriteLine(“\n数组元素为:\n”);
    foreach(内部i在arr中)
    {
    Console.Write(“\t{0}”,i);
    }
    Console.WriteLine(“\n”);
    }
    静态空隙定界(字符串arr2)
    {
    字符[]分隔符=新字符[]{',','-','};
    string[]integersList=arr2.Split(分隔符、StringSplitOptions.RemoveEmptyEntries);
    foreach(整数列表中的字符串值)
    {
    控制台写入线(值);
    }       
    }
    静态无效intConvertedList(字符串[]arr3)
    {
    int[]intConvertedList=新int[arr3.Length];
    for(inti=0;i
    您的intConvertedList方法没有返回任何内容

    在该函数中,创建一个新的int数组,并从输入的字符串数组构建它。最后,返回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;
        }
    
    static int[]intConvertedList(字符串[]arr3)
    {
    int[]intConvertedList=新int[arr3.Length];
    for(inti=0;i

    事实上,您的方法都没有返回任何内容。您应该将您的方法视为输入和输出,并考虑您想在其中投入什么,以及您想从中获得什么。然后,您需要从它们中“返回”您想要的东西。

    您可以使用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))}");
    
    或者也可以使用
    聚合

    var numbersAddStr = numbers.Aggregate(new StringBuilder(),
        (builder, element) => builder.Append(" + ").Append($"{element}"),
        builder => builder.Remove(0,3) // removes the leading " + "
            .ToString());
    
    static void Main(字符串[]args){
    字符串sNumbers=“1,2,3,4,5”;
    整数和=0;
    int[]array=sNumbers.Split(',).Select(str=>int.Parse(str)).ToArray();
    for(int i=0;i
    这将输出您所要求的内容


    希望能有所帮助。

    您需要函数返回其结果,以便使用Linq将这些结果传递给下一个函数。这只是一行
    var sum=nums.Split(new[]{',',',','-},StringSplitOptions.removeMptyEntries)。选择(int.Parse.sum()当然,@juharr是绝对正确的,我就是这么做的,但我认为将程序流分解成块是有价值的,特别是当你刚刚开始时,你必须更好地理解这个过程。嗯,没有一个函数返回结果,所以从技术上讲你是对的。我会把你的答案扩大到包括所有这些内容……虽然从技术上讲是正确的,但这看起来很像家庭作业帮助,所以这种“长除法”的工作方式可能对OP的意图更有利。
    
    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();           
        }