Не до конца выводит требуемые строки из массива

Есть массив строк и есть строки, которые мне необходимо пропустить, но после первых двух ItemToSkip (1, 24) перестаёт проверять и добавляет всё подряд

int[] ItemToSkip = { 1, 24, 25, 28, 29, 32, 34, 35, 41, 42, 44, 45, 46 };

int i = 0;
foreach(var line in AC_Array)
{
    if (AC_Array.IndexOf(line) != ItemToSkip[i])
    {
        Data += line + ";" + "\n";
    }
    else i++;
}

Исходный текст:
0000;
10000;
4066;
11.01.23,10:01:47;
;
;
;
89.109.23.203:11222;
;
*100#;
5,10:01,1;
4103;
26;
43200;
3600;
19;
14;
10;
203;
1;
43;
4;
370;
14;
101.325000;
1;
14;
4;
1;
0;
40960;
253;
99.11;
:;
:;
;
;
2000;
0000;
0000;
010B00000000220A;
0;
0;
99.89;
0;
0;
0;
4066;

После пропуска всех ненужных должен быть:
0000;
4066;
11.01.23,10:01:47;
;
;
;
89.109.23.203:11222;
;
*100#;
5,10:01,1;
4103;
26;
43200;
3600;
19;
14;
10;
203;
1;
43;
4;
370;
14;
1;
14;
40960;
253;
:;
;
2000;
0000;
0000;
010B00000000220A;
99.89;


Ответы (1 шт):

Автор решения: XelaNimed

Если я правильно понял, что Вы пытаетесь сделать:

using System;
using System.Linq;
                    
public class Program
{
    public static void Main()
    {
        int[] valueArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int[] itemsToSkip = { 1, 3, 9 };
        Console.WriteLine(
            String.Join(
                ";\n",
                valueArray.Where(i => !itemsToSkip.Contains(i))
            )
        );
    }
}

Поиграться с кодом можно здесь.

→ Ссылка