сохранение цикла

214
27 июня 2017, 21:05

Три цикла от 1 до 3. Необходимо сохранить данные в тхт, но не все данные. Должно быть так

1здесь_пробел1
здесь_два_пробела2
здесь_два_пробела3
2 1
  2
  3
3 1
  2
  3

Код на сохранение данных есть, куда сохранять, а остального нет(выше)

Код :

for (int i = 1; i <= 3; i++)
{
    for (int j = 1; j <= 3; j++)
    {
        string main = i.ToString() + j.ToString();
        Console.WriteLine(main);

он показывает он так:

11
12
13
21
22
23
31
32
33

но надо чтобы показывал так:

    1здесь_пробел1
    здесь_два_пробела2
    здесь_два_пробела3
    2 1
      2
      3
    3 1
      2
      3

Если с буквами abc типа:

aa
 b
 c
ba
 b
 b
ca 
 b
 c
string st = "abc";
for (int a = 0; a < st.Length; a++)
        {
            for (int b = 0; b < st.Length; b++)
            {
                    string main = st[a].ToString() + st[b].ToString();
                    if (st[a] == st[b])
                    {
                        main = st[b].ToString();
                        Console.WriteLine(main);
                    }
                }
            }
        }
        Console.ReadKey();

но надо чтобы он показывал основу...хз

Answer 1

Ну, самый короткий код, который выводит такие данные, у меня вот какой:

for (int i = 1; i < 4; i++)
    for (int j = 1; j < 4; j++)
        Console.WriteLine((j == 1 ? i.ToString() : " ") + " " + j);

Более читаемый вариант:

for (int i = 1; i < 4; i++)
for (int j = 1; j < 4; j++)
{
    string main = " ";
    if (j == 1)
        main = i.ToString();
    main += " " + j;
    Console.WriteLine(main);
}

Для варианта со строкой можно, например, так:

string s = "abc";
for (int i = 0; i < s.Length; i++)
    for (int j = 0; j < s.Length; j++)
        Console.WriteLine((j == 0 ? s[i] : ' ') + " " + s[j]);

или так:

string s = "abc";
foreach (var c1 in s)
{
    var prefix = c1;
    foreach (var c2 in s)
    {
        Console.WriteLine(prefix + " " + c2);
        prefix = ' ';
    }
}
Answer 2

Посути тоже самое, но код глаза не режит.

int lenght = 4; //ограничение
for (int i = 1; i < lenght; i++)
{
   Console.Write(i + " ");
   for (int j = 1; j < lenght; j++)
   {
      Console.WriteLine(j);
   }
}

Такой же вариант только с буквами

string ts = "abcdefghijklmnopqrstuvwxyz";
char[] ar;
ar = ts.ToCharArray();
//Можно было сразу массив создать и не париться с лишней строкой, но я это для примера

int lenght = 4; //ограничение
for (int i = 1; i < lenght; i++)
{
   Console.Write(ar[i] + " ");
   for (int j = 1; j < lenght; j++)
   {
      Console.WriteLine(ar[j]);
   }
}
//Не забывайте что в lenght вы можете указать любое положительное число которое не больше колличества символов в алфавите.
READ ALSO
Не создается задача в планировщике для текущего пользователя в Windows-домене

Не создается задача в планировщике для текущего пользователя в Windows-домене

Задача: сделать автозагрузку программы с админскими правами (установлена в Program Files)Программа использует Long Polling для установления длительного...

217
EntityFramework + Firebird как подключить - C#

EntityFramework + Firebird как подключить - C#

Добрый день! Уже целый день пытаюсь подружить Firebird с EntytiFramework и не получаетсяДелал всё по инструкции https://habrahabr

202
Битые ссылки на сайте [требует правки]

Битые ссылки на сайте [требует правки]

Есть сайт на котором присутствуют битые ссылки(которые ведут на 404), как с помощью C# найти эти ссылки и удалить адрес куда они ведут? То есть...

213
Не определена функция в firefox расширении

Не определена функция в firefox расширении

Разрабатываю расширение для firefox, возникла необходимость добавлять обработчик события при нажатии на определенный элемент на сайте

218