Я пишу приложение, в котором мне нужно прочитать набор файлов JSON и создать объекты из модели в моем приложении. Это кажется не таким уж сложным, и код выглядит мне правильно, но я использую массив для хранения строк JSON, и по какой-то причине Visual Studio выделяется красным цветом, подчеркивая имя массива и говоря, что это «неназначенная локальная переменная»,хотя я объявляю это перед циклом foreach.
Я немного новичок в C #, поэтому, если кто-то может дать мне знать, как это исправить, я буду очень признателен.
Строка, о которой идет речь, начинается с "lotRanges [i]= JsonConvert ... "
namespace InternalReceiptImport.Services
{
interface ILotRangeService
{
List<LotRange> GetAll();
}
public class LotRangeService : ILotRangeService
{
public List<LotRange> GetAll()
{
string jsonFilePath = @"\Data";
Array files = Directory.GetFiles(jsonFilePath);
LotRange[] lotRanges;
int i = 0;
foreach (string filename in files)
{
string filepath = jsonFilePath + "\\" + filename;
string json = File.ReadAllText(filepath);
lotRanges[i] = JsonConvert.DeserializeObject<LotRange>(json);
i++;
}
List<LotRange> listLotRanges = lotRanges.ToList();
return listLotRanges;
}
}
}
Было предложено ниже, я просто использую список вместо массива. Я пробовал это, но это дает мне ту же ошибку в строке, которую я использую, чтобы добавить в список. Вот код ...
namespace InternalReceiptImport.Services
{
interface ILotRangeService
{
List<LotRange> GetAll();
}
public class LotRangeService : ILotRangeService
{
public List<LotRange> GetAll()
{
string jsonFilePath = @"\Data";
Array files = Directory.GetFiles(jsonFilePath);
List<LotRange> listLotRanges;
int i = 0;
foreach (string filename in files)
{
string filepath = jsonFilePath + "\\" + filename;
string json = File.ReadAllText(filepath);
listLotRanges.Add(JsonConvert.DeserializeObject<LotRange>(json));
i++;
}
return listLotRanges;
}
}
}