Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/352: Рейтинг темы: голосов - 352, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 5

Как вывести массив без цикла

29.05.2012, 22:52. Показов 68965. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем
Как вывести массив,но без цикла и одной строкой?
К примеру тут:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections.Specialized;
 
namespace ConsoleApp96
{
    class Program
    { 
        static void Main(string[] args)
        {
            StringCollection s = new StringCollection { "qwerty", "qwer", "qwe", "qw" };
            Console.WriteLine(s); //тут надо вывести массив,одной строкой
            Console.ReadLine();
        }
    }
}
Заранее спасибо за помощь
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.05.2012, 22:52
Ответы с готовыми решениями:

Двумерный массив. Заполнить и вывести двумерный массив БЕЗ использования цикла FOR
Заполнить ивывести двумерный массив БЕЗ использования цикла FOR очень срочно!!!

Как заполнить массив без цикла
Нужно заполнить массив разными целыми числами через консоль, можно ли сделать это без цикла? Спасибо!

Как обойти массив без использования цикла
С помощью рекурсии

13
Футболист
 Аватар для Goal
533 / 435 / 142
Регистрация: 31.10.2011
Сообщений: 1,010
29.05.2012, 22:59
как еще меньше - не знаю. Но получаеться в одну стрчку печатает
Пример
C#
1
2
3
4
5
6
7
static void Main(string[] args)
        {
            StringCollection s = new StringCollection { "qwerty", "qwer", "qwe", "qw" };
            foreach (string item in s)
                Console.Write(item+" "); 
            Console.ReadLine();
        }
0
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 5
29.05.2012, 23:05  [ТС]
Ой,простите, неверно сформулирован вопрос...
Надо не одной строкой,а в столбик, что бы получилось что то в духе:
C#
1
Console.WriteLine(/*тут должна быть одна переменная или что то в этом роде*/);
qwerty
qwer
qwe
qw
И foreach тоже не вариант,это какой-никакой,а все таки цикл...
0
 Аватар для dextermd
101 / 100 / 18
Регистрация: 04.09.2009
Сообщений: 133
29.05.2012, 23:13
Цитата Сообщение от NightofDream Посмотреть сообщение
Как вывести массив,но без цикла и одной строкой?
Без цикла - никак.
0
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 5
29.05.2012, 23:18  [ТС]
Это огорчает...
И запихать значения из массива в переменную тоже нельзя?
0
 Аватар для Alex_Sabaka
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
29.05.2012, 23:19
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Цитата Сообщение от dextermd Посмотреть сообщение
Без цикла - никак.
Садись, два!

C#
1
2
object[] array = new object[] {1, 2f, "str", DateTime.Now};
Console.WriteLine("{0}", string.Join("\n", array));
Конечно же, string.Join в своих недрах использует цикл, но как хак сойдет.
5
 Аватар для dextermd
101 / 100 / 18
Регистрация: 04.09.2009
Сообщений: 133
29.05.2012, 23:29
Цитата Сообщение от Alex Sabaka Посмотреть сообщение
Цитата Сообщение от dextermd
Без цикла - никак.
Садись, два!
Цитата Сообщение от Alex Sabaka Посмотреть сообщение
Конечно же, string.Join в своих недрах использует цикл
Что-то не сходится.
0
 Аватар для Alex_Sabaka
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
29.05.2012, 23:33
Цитата Сообщение от dextermd Посмотреть сообщение
Что-то не сходится.
Цитата Сообщение от Alex Sabaka Посмотреть сообщение
но как хак сойдет.
ТС нужно было без явного цикла. А, то что лежит где то глубоко в .NET не считается :P

Если уж хотете тръ-без цикла, то рекурсия вам в помощь!
C#
1
2
3
4
5
6
7
8
9
        public static string concatRec(string sep, object[] arr, string acc = "")
        {
            if (arr.Length == 0) return acc;
            string acc1 = acc;
            if (arr.Length == 1) acc1 += arr[0].ToString();
            else acc1 += arr[0].ToString() + sep;
            object[] arr1 = arr.Where((_, i) => i > 0).ToArray();
            return concatRec(sep, arr1, acc1);
        }
1
3 / 3 / 1
Регистрация: 06.04.2012
Сообщений: 24
29.05.2012, 23:51
Метод написать. НЕ?

C#
1
2
3
4
5
6
7
8
9
10
11
static void Main()
{
    //предположим, что массив уже описан и заполнен
    ArrayWriteLine(SomeArray);
}
 
static void ArrayWriteLine(string[] arr)
{
    foreach(string s in arr)
        Console.WriteLine(s);
}
0
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 5
30.05.2012, 00:02  [ТС]
Огромное спасибо!)
Дело было в том,чтобы сделать вывод без циклов,т е только массив и WriteLine,это было нужно для создания менюшки из текстового файла)

Добавлено через 8 минут
Возникла новая беда...Правда совсем не в тему....
Эта самая программа считывает с файла построчно текст и выводит его,а стрелочкой можно(по идее) переключатся по этому тексту
Так вот,стрелочка не двигается...
Программа
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections.Specialized;
 
namespace ConsoleApp74
{
    class Program
    {
        public static void Print(string[] points, int choose)
    {
        Console.Clear();
        for (int i = 0; i < points.Length; i++)
            Console.WriteLine("{0} {1}", points[i], i == choose ? "<---" : "");
    }
 
    public static int Menu(string[] points)
    {
        Console.CursorVisible = false; 
        int choose = 0;
        while(true) 
        {
            Print(points, choose);
            switch (Console.ReadKey(true).Key)
            {
                case ConsoleKey.UpArrow: choose--; break;
                case ConsoleKey.DownArrow: choose++; break;
                case ConsoleKey.Enter: Console.CursorVisible = true; return choose;
            }
            choose = (choose + points.Length) % points.Length; 
        }
    }
                
    public static void Main()
    {
       List<string> s= new List<string>(); 
       String line;
            try
            {
                StreamReader sr = new StreamReader("C:\\Меню.txt");
                line = sr.ReadLine();
                while (line != null)
                {
                        s.Add(line);
 
                    line = sr.ReadLine();
                }
                string[] points = { string.Join("\n", s)};
                 int choose = Menu(points);
                sr.Close();    
                
            }
            catch (FileNotFoundException)
            {
               Console.WriteLine("Файл не найден ");
            }
            catch (Exception e)
            {
                Console.WriteLine("Исключение " + e.Message);
            }
            finally
            {
            }
        Console.ReadLine();
        }
    }
}

Но если в string[] points = { string.Join("\n", s)}; заменить на string[] points = {111,222,333,444,555};
то все работает и переключается
В чем дело?
0
 Аватар для Alex_Sabaka
638 / 499 / 77
Регистрация: 28.07.2010
Сообщений: 895
30.05.2012, 00:09
Цитата Сообщение от NightofDream Посмотреть сообщение
string[] points = { string.Join("\n", s)}; заменить на string[] points = {111,222,333,444,555};

Ну конечно же!!! В первом случае у вас массив из одного элемента - склеенного списка, а во втором, просто массив. Поменяйте первый вариант на string[] points = s.ToArray(); Хотя тут даже без еще одного массива можно обойтись.
1
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
30.05.2012, 00:10
C#
1
2
3
4
5
6
7
8
string[] s = new string[] { "1", "2", "3" };
int j = 0;
 
s:
    Console.WriteLine( s[j] );
    j++;
    if ( j < s.Length )
        goto s;
0
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 5
30.05.2012, 00:20  [ТС]
Alex Sabaka, низкий вам поклон!))
0
 Аватар для Yukikaze
352 / 331 / 49
Регистрация: 12.12.2011
Сообщений: 563
30.05.2012, 00:40
Programmer93, ну да, это ведь без цикла
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2012, 00:40
Помогаю со студенческими работами здесь

Как записать массив в БД без использования цикла?
Добрый день, помогите пожалуйста, кто знает можно ли записать в БД массив, без перебора с помощью всяких циклов? Пробовал с...

Как записать Имена Листов в массив, а потом вне цикла вывести весь массив.
Здравствуйте, очень надеюсь на вашу помощь, не получается в цикле произвести запись Имени Листа в массив, а потом вне цикла вывести весь...

Как правильно вывести строку двухмерного массива без применения цикла
Подскажите пожалуйста, вот я обьявляю строку char s; Если Мне нужен массив строк, то я обьявляю его s Как дальше использоваь второй...

Как вывести элементы массива в обратном порядке без введения второго цикла ?
Задание 8.2 со стр. 137 книги «Паскаль для школьников», 2005 г. Ушаков, Юркова. Добавить в задание 8.1 новый цикл вывода элементов...

Как без цикла заполнить весь массив каким-нибудь значением?
Добрый день. Данная тема создана для саморазвития (или еще кому пригодится), возможно упрощения и укорочения кода и увеличения скорости...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru