Плутанина у використанні масивів у C #

чи можна прийняти більше, ніж один entires, як змінні, а потім змінити його на масив! як, наприклад, користувач вводив більше одного імені, але не визначав, скільки імен вони повинні вводити, і коли я отримав імена, я б змінив його на масив, чи це можливо?

Дякую!

1
Що ви маєте на увазі під «приймати більше, ніж одне, як змінні»? Чи потрібно вводити дані для динамічного числа полів введення або ви бажаєте розділити довільний вхід з одного поля на декілька змінних (наприклад, розбиття через кому або інше)? Зрештою, ваші результати можуть бути збережені у списку або масиві з фіксованою довжиною (створені після того, як ви знаєте, скільки елементів у вас є).
додано Автор Dan C, джерело
Як користувач вводить імена?
додано Автор Miguel Angelo, джерело
@MiguelAngelo, наприклад, як запит додаток просить користувача ввести своє улюблене ім'я пісень.
додано Автор 0bserver07, джерело
@DanC Дякую, так, це так, і я постараюся розділити їх і подивитися, що я можу зробити з ним!
додано Автор 0bserver07, джерело

3 Відповіді

In .NET arrays have fixed length. If you want to be able to dynamically add elements to a list you could use the List class.

Наприклад:

List names = new List();

Тепер ви можете почати додавати елементи до списку:

names.Add("foo");
names.Add("bar");
names.Add("baz");

Ви також можете отримати відповідний масив фіксованої довжини за допомогою ToArray() метод:

string[] namesArray = names.ToArray();
10
додано
Пізно на сторону, але ToArray() не є методом Список , а скоріше методом розширення IEnumerable , який < код> Список інструментів .
додано Автор Zev Spitz, джерело
І якщо ви дійсно потребуєте масиву, скористайтеся методом ToArray() List.
додано Автор Frank, джерело
Завдяки Darin, це дуже цікавий підхід!
додано Автор 0bserver07, джерело

Я думаю, що ви шукаєте param object [] . Він використовується для невизначеного числа або параметрів у функції. Ваша функція виглядатиме так:

public static void SayHello(params string[] names){
    foreach(var name in names){
        Console.WriteLine("Hello " + name);
    }
}

І ви можете назвати це так:

SayHello("Bob", "Bill", "Susan");
SayHello("Jenny");
2
додано
@ Soap141, Чудовий, то йдіть далі і відзначте його як свою відповідь.
додано Автор Daryl, джерело
Ось що я маю на увазі! Дякую, друже!
додано Автор 0bserver07, джерело

Якщо користувач збирається ввести більше одного імені, то я пропоную вам створити список рядків замість масиву.

0
додано
Я також думав про це, але цей мій професор не хоче використовувати те, що він не прикривав! принаймні, він хоче бути справедливим щодо майстерності інших студентів! Знову дякую!
додано Автор 0bserver07, джерело
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug