У меня есть список имен.Из них я хочу создать новый список списков (или зубчатый массив, если это работает лучше), где списки нижнего уровня содержат варианты имен.
Основная идея заключается в том, что вы берете имяи удаляйте одну букву за раз, чтобы создать список, содержащий все эти творения, а также оригинальное имя.Так, например, если ваши имена «bob» и «alice», я хочу вывести
[["bo", "bb","ob","bob"], ["alic", "alie", "alce", "aice", "lice", "alice"]].
Я могу легко сделать это только для одного имени, но я сталкиваюсь с проблемами, которые не могу решить, когдаЯ пытаюсь создать такой вложенный список (я относительно новичок в C #).Вот игрушечный пример того, что я пробовал:
List<string> names = new List<string>()
{
"alice",
"bob",
"curt"
};
//initialize jagged array
string[][] modifiedNames = new string[names.Count][];
//iterate over all names in "names" list
foreach(string name in names)
{
int nameIndex = names.IndexOf(name);
//initialize lower level of array
modifiedNames[nameIndex] = new string[name.Length];
//create variations of a given name
for (int i = 0; i < name.Length; i++)
{
string newName = name.Substring(0, i) + name.Substring(i + 1);
if (modNames[nameIndex].Contains(newName) == false)
modNames[nameIndex].Add(newName);
}
modName.Add(name);
}
Я пробовал несколько его версий, как со списками, так и с массивами, но безрезультатно.В этом случае я получаю сообщение об ошибке:
'string []' не содержит определения для 'Add' и недоступного метода расширения 'Add', принимающего первый аргумент типа 'string []'может быть найдено (вам не хватает директивы using или ссылки на сборку?)
Большое спасибо за помощь!