Member 13302374 Ответов: 2

C# - возвращает список, содержащий все элементы данного массива в виде строк


Привет,

Я пытаюсь ответить на этот вопрос - Возвращает список, содержащий все элементы в данном массиве в виде строк, перед которыми стоит строка " element x :"..., где x = индекс элемента. Мне всегда кажется, что я близок к правильному коду, но концепция массивов, списков и коллекций-это то, к чему я все еще постепенно привыкаю. Что касается вопроса в названии, то я попытался ответить на него с помощью цикла for, но что будет внутри фигурных скобок?

Я постоянно получаю ошибки типа" Этот тип вещей "не может быть преобразован в" этот тип вещей ", если вы понимаете, что я имею в виду. Я хотел бы понять, как обойти это препятствие.

С уважением

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

public static List<string> RetrunModifiedList(DateTime[] anArray)
       {
           for (int i = 0; i < anArray.Length; i++)
               {
             anArray[i] = i.ToString().Prepend("element" i);
               }
           return anArray;

       }

2 Ответов

Рейтинг:
2

OriginalGriff

Вы объявили входной параметр anArray как массив, содержащий объекты DateTime , но внутри цикла вы пытаетесь заполнить его строками. Это все равно что иметь рамку с круглыми отверстиями и пытаться вставить в них квадратные колышки!

Чтобы вернуть строки, необходимо создать новую коллекцию, содержащую строки, и перенести в нее объекты DateTime - как строки.
То, как я это сделаю - по крайней мере, как новичок - будет выглядеть так:

public static List<string> RetrunModifiedList(DateTime[] anArray)
   {
   List<string> results = new List<string>();
   for (int i = 0; i < anArray.Length; i++)
      {
      results.Add(string.Format("Element {0} : {1}", i, anArray[i]));
      }
   return results;
   }


Member 13302374

Спасибо, позвольте мне разобрать это, чтобы понять еще больше.

Рейтинг:
1

sputcha

Привет,

После просмотра фрагмента кода я вижу, что вы обновляете DateTime[] в строковый массив.

Не могли бы вы объявить для этого отдельную переменную?

например.г

List< string> listArray= новый список & lt;string>();

И внутри для петли

listArray.Добавить(я.Метод toString().Добавить("элемент" я));

и вернуть объект listArray.

Попробовать это.


public static List<string> RetrunModifiedList(DateTime[] anArray)
       {
             List<string> listArray= new List<string>();

           for (int i = 0; i < anArray.Length; i++)
               {
            listArray.Add(i.ToString().Prepend("element" i));
               }
           return listArray;

       }


Member 13302374

Я попробовал это сделать и получаю ошибки

sputcha

Не могли бы вы опубликовать ошибку и весь код целиком ?