Member 13336533 Ответов: 2

Как удалить ошибку: не удается неявно преобразовать тип 'string' в 'int'


использование системы;
использование системы.Коллекции.Общий;
использование System. Linq;
используя системы.Текст;

SortNames пространства имен
{
программа занятий
{
статический недействительным основные(string аргументы[] sortNames)
{
строковое имя;
Приставка.Write ("введите имя: ");
имя = консоль.Линия чтения();
sortNames = new string [name]; / / ошибка лежит в этой строке. это имя упоминается в [].//
for (int x = 0; x < sortNames.Длина; x++)
{
Приставка.WriteLine ("список имен перед расстановкой: /n");
Приставка.WriteLine(sortNames[x]);
}
Array. Sort(sortNames);
for (int y = 0; y < sortNames.Длина; y++)
{
Приставка.WriteLine ("список имен после расположения: /n");
Приставка.WriteLine(sortNames[y]);
}
Приставка.ReadKey();
}
}
}

Что я уже пробовал:

Я не вижу необходимости переходить на int.. Я работаю только со струнами.

2 Ответов

Рейтинг:
2

Thomas Daniels

sortNames = new string [name];
Что на самом деле делает эта строка, так это устанавливает sortNames в массив с name элементы, где name это длина. Но это не может быть длина, потому что это строка.

Я предполагаю, что ваше намерение состоит в том, чтобы добавить name к массиву. Для этого создайте новый массив с увеличенной длиной, а затем скопируйте исходные элементы в этот новый массив:
string[] completeSortNames = new string[sortNames.Length + 1];
sortNames.CopyTo(completeSortNames, 0);
completeSortNames[completeSortNames.Length - 1] = name;
// from now on, use completeSortNames rather than sortNames, because sortNames doesn't have the last element


Кроме того, это не обязательно для args должны быть параметры; args будет заполнен аргументами командной строки во время выполнения, params не обязательный.


Рейтинг:
1

OriginalGriff

sortNames-это массив строк (из объявления метода) и вашего кода:

sortNames = new string [name]
пытается создать новый массив. (Почему? Я понятия не имею - он перезапишет параметры командной строки, которые вы передали в приложение.)
Но...вы получаете ошибку, потому что новый массив должен знать, насколько он должен быть большим, а строка не говорит ему об этом - вы необходимость целое число внутри квадратных скобок, чтобы можно было создать нужное количество элементов.