Ответы пользователя по тегу Программное обеспечение и интернет-сервисы
  • C#: Как правильно прочитать и записать объекты в ArrayList?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Не стоит использовать ArrayListбез весомой на то необходимости. Поэтому компилятор не смог вас предупредить, что ArrayListсостоит из ArrayList'ов, в котором строки (двумерный массив строк), а не просто строк.

    Вместо ArrayListнеобходимо использовать типизированный динамический массивList<string>.

    public void Click_OpenFile()
    {
        string fileName = form1.OpenFie();
    
        IList<string[]> aL = ParseFile(fileName);
    
        foreach (var line in aL)
        {
            // Снова собираем токены в строки
            MessageBox.Show(string.Join(" ", line));
        }
    }
    
    // Читаем файл и построчно парсим его
    private IList<string[]> ParseFile(string fileName)
    {
        if (string.IsNullOrEmpty(fileName))
        {
            throw new ArgumentNullException(nameof(fileName));
        }
        if (!File.Exists(fileName))
        {
            throw new ArgumentException($"There is no file {fileName}!");
        }
    
        string[] fileContent = File.ReadAllLines(result);
        var aL = new List<string[]>(fileContent.Length);
        foreach (var line in fileContent)
        {
            aL.Add(ParseString(line));
        }
        return aL;
    }
    
    // Разбиваем строки на токены
    private string[] ParseString(string s)
    {
        const char delimiter = '|';
        return s.Split(delimiter);
    }
    Ответ написан
    Комментировать