Search code examples
c#splituser-input

Store split values from user response in C#


I'm trying to create a grade calculator but I'm completely unsure how to compile the code to do so.

So far I've got the ability to split a user's response, but now I need to know how to take those splits and use them as separate values in order to create an average. I'm completely clueless how to achieve this and I've been searching for 2 days now on the internet with no luck.

Console.WriteLine ("User response seperated by commas goes here.");
string response = Console.ReadLine ();
Char delimiter = ',';
string[] splitResponses = response.Split (delimiter);

Solution

  • I need to know how to take those splits and use them as separate values in order to create an average.

    Not sure what you mean by take those splits and use them as separate values, result is an array you could elements using index like splitResponseses[0]

    To calculate the average you need to convert them to ints (or respective types), and calculate average.

    string[] splitResponses = response.Split (delimiter);     // Split string
    
    int sum=0; 
    foreach(string s in splitResponses)
    {
        var valueInt = int.Parse(s); // convert string to an int.
    
        sum+= valueInt;   
    }   
    
    double average = (double)sum/splitResponses.Length;
    

    Another simple solution using Linq extensions.

    int[] splitResponses = response.Split (delimiter)     // Split string
                                   .Select(int.Parse)     // Convert To int value; 
                                   .ToArray();
    

    Now you could calculate average using

    splitResponses.Average();   // Average
    splitResponses.Sum();       // Sum