Почему в строчке if (list[i] == list[j]) индекс выходит за пределы массива?
Если что вот задача:
Ваша программа так же получает на вход два числа в строковом формате, но теперь они могут быть разной длины. Найдите все уникальные элементы первого числа (значения, которые встречаются только 1 раз в обоих массивах)
Пример:
12335
1458
В данном случае уникально число 2 - оно существует в одном экземпляре
1 и 5 есть во втором массиве, а 3 встречается дважды в первом
В итоге ответ:
"Уникально число 2"
Sample Input:
12335 1458
Sample Output:
Уникально число 2
string num1 = Console.ReadLine();
string num2 = Console.ReadLine();
string num = num1 + num2;
char[] list = num.ToCharArray();
string str = "";
Console.WriteLine("Уникальное число ");
foreach (int i in list)
{
foreach (int j in list)
{
if (i == j)
continue;
if (list[i] == list[j]) // ошибка здесь!
continue;
else
str += list[i];
}
Console.WriteLine(str);
Источник: Stack Overflow на русском