Подтвердить что ты не робот

Как печатать содержимое массива по горизонтали?

Почему консольное окно не печатает содержимое массива горизонтально, а не вертикально?

Есть ли способ изменить это?

Как я могу отображать содержимое моего массива горизонтально, а не вертикально, с Console.WriteLine()?

Например:

int[] numbers = new int[100]
for(int i; i < 100; i++)
{
    numbers[i] = i;
}

for (int i; i < 100; i++) 
{
    Console.WriteLine(numbers[i]);
}
4b9b3361

Ответ 1

Вероятно, вы используете Console.WriteLine для печати массива.

int[] array = new int[] { 1, 2, 3 };
foreach(var item in array)
{
    Console.WriteLine(item.ToString());
}

Если вы не хотите, чтобы каждый элемент в отдельной строке использовал Console.Write:

int[] array = new int[] { 1, 2, 3 };
foreach(var item in array)
{
    Console.Write(item.ToString());
}

или string.Join<T> (в .NET Framework 4 или новее):

int[] array = new int[] { 1, 2, 3 };
Console.WriteLine(string.Join(",", array));

Ответ 2

Я бы предложил:

foreach(var item in array)
  Console.Write("{0}", item);

Как написано выше, кроме него не возникает исключение, если один элемент null.

Console.Write(string.Join(" ", array));

был бы идеальным, если массив является string[]

Ответ 3

Просто проведите по массиву и напишите элементы на консоль, используя Write вместо WriteLine:

foreach(var item in array)
    Console.Write(item.ToString() + " ");

Пока ваши элементы не имеют разрывов строк, это приведет к созданию одной строки.

... или, как сказал Джон Скит, предоставит немного больше контекста вашему вопросу.

Ответ 4

foreach(var item in array)
Console.Write(item.ToString() + "\t");

Ответ 5

namespace ReverseString
{
    class Program
    {
        static void Main(string[] args)
        {

            string stat = "This is an example of code" + "This code has written in C#\n\n";

            Console.Write(stat); 

            char[] myArrayofChar = stat.ToCharArray();

            Array.Reverse(myArrayofChar);

            foreach (char myNewChar in myArrayofChar)
                Console.Write(myNewChar);            // Yuo just need to write the function Write instead of WriteLine

            Console.ReadKey();


        }
    }
}

Это вывод

#C ni nettirw sah edoc sihTedoc fo elpmaxe na si sihT

Ответ 6

Если вам нужно довольно печатать массив массивов, что-то вроде этого может работать http://aaron-hoffman.blogspot.com/2013/11/pretty-print-array-of-arrays-in-net-c.html

public string PrettyPrintArrayOfArrays(int[][] arrayOfArrays)
{
  if (arrayOfArrays == null)
    return "";

  var prettyArrays = new string[arrayOfArrays.Length];

  for (int i = 0; i < arrayOfArrays.Length; i++)
  {
    prettyArrays[i] = "[" + String.Join(",", arrayOfArrays[i]) + "]";
  }

  return "[" + String.Join(",", prettyArrays) + "]";
}

Результат:

[[2,3]]

[[2,3],[5,4,3]]

[[2,3],[5,4,3],[8,9]]

Ответ 7

int[] n=new int[5];

for (int i = 0; i < 5; i++)
{
    n[i] = i + 100;
}

foreach (int j in n)
{
    int i = j - 100;

    Console.WriteLine("Element [{0}]={1}", i, j);
    i++;
}

Ответ 8

    public static void Main(string[] args)
        {
            int[] numbers = new int[10];

            Console.Write("index ");

            for (int i = 0; i < numbers.Length; i++)
            {
                numbers[i] = i;

                Console.Write(numbers[i] + " ");

            }

            Console.WriteLine("");

            Console.WriteLine("");

            Console.Write("value ");

            for (int i = 0; i < numbers.Length; i++)
            {
                numbers[i] = numbers.Length - i;

                Console.Write(numbers[i] + " ");

            }

            Console.ReadKey();
        }
    }
}

Ответ 9

Использование Console.Write работает только в том случае, если поток является единственным потоком, записываемым в Консоль, иначе ваш вывод может быть перемежен с другим выходом, который может или не может вставлять новые строки, а также другие нежелательные символы. Чтобы ваш массив был напечатан без изменений, используйте Console.WriteLine для записи одной строки. Большинство объектов массива могут быть напечатаны горизонтально (в зависимости от типа ToString()) с использованием не-generic Join, доступного до .NET 4.0:

        int[] numbers = new int[100];
        for(int i= 0; i < 100; i++)
        {
            numbers[i] = i;
        }

        //For clarity
        IEnumerable strings = numbers.Select<int, string>(j=>j.ToString());
        string[] stringArray = strings.ToArray<string>();
        string output = string.Join(", ", stringArray);
        Console.WriteLine(output);

        //OR 

        //For brevity
        Console.WriteLine(string.Join(", ", numbers.Select<int, string>(j => j.ToString()).ToArray<string>()));

Ответ 10

Ниже приведено простейшее решение

Console.WriteLine("[{0}]", string.Join(", ", array));

Вывод: [1, 2, 3, 4, 5]

Еще одно короткое решение

Array.ForEach(array,  val => Console.Write("{0} ", val));

Вывод: 1 2 3 4 5, или, если вам нужно добавить, добавьте ,, используйте ниже

int i = 0;
Array.ForEach(array,  val => Console.Write(i == array.Length -1) ? "{0}" : "{0}, ", val));

Вывод: 1, 2, 3, 4, 5

Ответ 11

private int[,] MirrorH(int[,] matrix)               //the method will return mirror horizintal of matrix
{
    int[,] MirrorHorizintal = new int[4, 4];
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j ++)
        {
            MirrorHorizintal[i, j] = matrix[i, 3 - j];
        }
    }
    return MirrorHorizintal;
}