что самый быстрый способ получить индексы строкового массива из другого массива строк С#

У меня есть 2 строковых массива, например, главный массив содержит "ABC", "DEF", "GHI", "TEST", "TEST", "ZXY", "ZXY", "ZXY",

второй массив содержит "TEST", "TEST", "ZXY", "ZXY", "ZXY",

Мне нужен вывод: получить массив целых чисел индексов второго массива, содержащихся в основном массиве, например, этот вывод равен 3,4,5,6,7

NB: Мне нужен самый быстрый способ сделать это

БЛАГОДАРЯ :)

-9
источник поделиться
1 ответ

Может быть:

int[] matchingIndices = arr1.Select((str, index) => new { str, index })
            .Where(x => arr2.Contains(x.str))
            .Select(x => x.index)
            .ToArray();

Нелинейный способ (возможно, немного более эффективный):

List<int> matchingIndices = new List<int>(arr1.Length);
for (int i = 0; i < arr1.Length; i++)
{
    if (Array.IndexOf<string>(arr2, arr1[i]) >= 0)
        matchingIndices.Add(i);
}
int[] result = matchingIndices.ToArray();
+2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос