Не стоит использовать
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);
}