TransWikia.com

Как пропустить первые значения элементы в массиве в C#

Stack Overflow на русском Asked on December 18, 2021

Хочу что вывод данных массива был

[i = 1]:  2 3 4 5
[i = 2]:  2 3
[i = 3]:  2
[i = 4]: 

Вот мой код

 static void Main(string[] args)
        {
            var array = new[] { 1, 2, 3, 4, 5 };
            int x = 1;
            for (int i = 0; i < array.Length-x; i++)
            {
                Console.Write($"[i = {i}]: ");
                int cc = 1;
                for (int j = 0; j < array.Length-cc; j++)
                {
                    Console.Write(array[j]);
                    Console.Write(' ');
                }
                Console.WriteLine();
            }
        }
    }

Но получается пока так(

[i = 0]: 1 2 3 4
[i = 1]: 1 2 3 4
[i = 2]: 1 2 3 4
[i = 3]: 1 2 3 4

помогите изменить код правильно, А до этого был такой код

static void Main(string[] args)
        {
            var array = new[] { 1, 2, 3, 4, 5 };
            
            for (int i = 0; i < array.Length; i++)
            {
                Console.Write($"[i = {i}]: ");
                
                for (int j = 0; j < array.Length-0-i; j++)
                {
                    Console.Write(array[j]);
                    Console.Write(' ');
                }
                Console.WriteLine();
            }
        }
    }
}   Выводит он так значения 

[i = 0]: 1 2 3 4 5
[i = 1]: 1 2 3 4
[i = 2]: 1 2 3
[i = 3]: 1 2
[i = 4]: 1

One Answer

Воспользуйтесь Linq, а именно методом Skip, который пропускает нужное кол-во элементов перечисления (List, массив, etc.):

var array = new[] { 1, 2, 3, 4 };

for (int i = 0; i < array.Length; i++)
{
    var skip = array.Skip(i + 1);
    string result = string.Join(" ", skip);
    Console.WriteLine($"[i = {i + 1}]: {result}");
}

Output:

[i = 1]: 2 3 4
[i = 2]: 3 4
[i = 3]: 4
[i = 4]:

Upd: Код без применения LINQ (по запросу из комментария):

for (int i = 0; i < array.Length; i++)
{
    Console.Write($"[i = {i + 1}]: ");
    for (int a = 1; a < array.Length - i; a++)
    {
        Console.Write(array[a] + " ");
    }

    Console.WriteLine();
}

Answered by LiptonDev on December 18, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP