2014-06-14 3 views
0

Я пытаюсь создать метод, который суммирует и выводит целые числа в массиве. Я понимаю, как суммировать целые числа, однако у меня возникают проблемы с получением желаемого результата.Форматирование вывода массива в C#

Если я перехожу в метод 8, 3, 3 Мне нужен вывод, чтобы выглядеть следующим образом.

Для списка = < 8, 3, 3> сумма: 14

Еще раз я знаком с тем, как подводить, я незнаком с тем, как отформатировать это. Вот мой метод до сих пор ...

public static void Sum(params int[] number) 
{ 
    int total = 0; 
    for (int i = 0; i < number.Length; ++i) 
     { 
     total = total + number[i]; 
     } 

    Console.Write("For the list =, the sum of its elements is : {0}.", total); 
    Console.Write("\n"); 
} 
+0

string.join() является легкий и элегантный ответ, но для обучения: вы должны разбить часть Write() на голову, тело с петлей и хвостом. –

+0

эй спасибо. Я понял эту концепцию, однако форматирование было не совсем правильным. – PerryH

ответ

1

Используйте метод String.Join сделать строку со значениями в массиве:

string values = String.Join(", ", number); 

Тогда просто добавить его к выходу:

Console.Write("For the list = <{0}> the sum of its elements is : {1}.", values, total); 

До рамках 4 нет перегрузки String.Join, который может принимать массив ничего, кроме строки, поэтому, если вы используете более старую framwork вам необходимо включить целые числа в строки:

string values = String.Join(", ", number.Select(n => n.ToString())); 
+0

Вам нужно будет преобразовать элементы в строки в массиве .. так как 'string.Join' принимает строковый массив. –

+0

@SimonWhitehead: вам нужно только это сделать, если вы используете фреймворк старше 4 лет. Я просто добавил абзац об этом. – Guffa

+0

* лицоpalm *. Конечно. Виноват. +1 –

0
public static void Sum(params int[] number) 
{ 
    int total=0; 
    for (int i = 0; i < number.Length; ++i) total = total + number[i]; 
    string ext = String.Format ("<{0}>", String.Join (",", number)); 

    Console.Write("For the list ={0} the sum is: {1}.",ext, total); 
    Console.Write("\n"); 
} 
0

Это будет делать :

using System; 
using System.Linq; 

public class Test 
{ 
    public static void Main() 
    { 
     Sum(8,3,3); 
    } 

    public static void Sum(params int[] number) 
    { 
     Console.WriteLine("For the list <{0}>, the sum of its elements is: {1}", 
      string.Join(", ", number), 
      number.Sum()); 
    } 
} 

выходы:

Для получения списка < 8, 3, 3>, сумма его элементов: 14

Click here for a working sample

0

Есть несколько способов, вы могли бы пойти, чтобы получить желаемый результат, один будет: государственной статической силы Sum (PARAMS INT [] номер)

{ 
    int total=0; 
    StringBuild tmp="For the list = 
    for (int i = 0; i < number.Length; ++i) 
     { 
     total = total + number[i]; 

     } 
    Console.Write("For the list =, the sum of its elements is : {0}.", total); 
    Console.Write("\n"); 
} 
Смежные вопросы