.Add не существует в текущем контексте

#c# #list #xamarin.forms

#c# #Список #xamarin.forms

Вопрос:

Я создаю свое первое приложение в Xamarin.forms и хочу добавить информацию о символах. Я следил за документами Microsoft, но продолжаю получать сообщение об ошибке, которое «.Добавить не существует в текущем контексте «Я последний час или два искал в Интернете, но, похоже, ничто не исправило это. Буду признателен за любую помощь, спасибо!

 using SQLite;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;

namespace CharCreator
{
    public class Character
    {
        [PrimaryKey, AutoIncrement]
        public int charIndex { get; set; }
        public string charName { get; set; }
        public string charClass { get; set; }
        public string charRace { get; set; }
        public int[] charStats { get; set; }

        public int classId { get; set; }
        public string className { get; set; }
    }

}

public class CharClasses
{   
    List<CharClasses> classList = new List<CharClasses>();
    classList.Add(new CharClasses() {classId = 1, className = "Barbarian"});
}

  

Комментарии:

1. Я прочитал ваш вопрос слишком быстро — проблема не в LINQ, похоже, что вы пытаетесь выполнить код вне тела метода, что запрещено. Хотя я ожидал бы другого сообщения об ошибке.

2. создайте метод в общедоступных классах CharClasses, затем переместите туда свой add.

3. кроме того, я подозреваю, что вы имеете в виду использовать List<Символ>, а не List<Классы символов>

4. Я переместил классы символов в класс CharCreator, и это не сработало. Изменение имени списка, похоже, также нарушает его

Ответ №1:

Ваша проблема начинается с объявления

 List<CharClasses> classList = new List<CharClasses>();
  

Вы объявляете список классов символов вместо списка символов. Затем вы пытаетесь инициализировать этот список первым элементом. Но вы не можете добавлять код вне метода.

Итак, если вам действительно нужно, чтобы классы символов были инициализированы с помощью List<Character> , содержащего хотя бы один элемент, тогда вам нужно написать это

 public class CharClasses
{
    public List<Character> classList = new List<Character>()
    {
        new Character {classId = 1, className = "Barbarian"}
    };

    --- other class method follows

}
  

Этот синтаксис объясняется в документации по инициализаторам объектов и коллекций