Базовая суть: пользователь просматривает CSV, приложение читает CSV, анализирует некоторые вычисления и затем выплевывает новый CSV.Это приложение для Windows Form, использующее .net. *. 1001 *
. CSV проверяемый файл:
Position,Title3,Title1,Title2,Title4,Title5,,
1,P-D3101A,NAME 1,175,282.9280381,1 x 30 x 120
2,P-D3103A,NAME 2,37.2,60.14241724,30 x 16
3,P-D3102A,NAME 3,29.8,48.17860306,30 x 10
4,P-D2301A,NAME 4,35,56.58560762,30 x 16
5,P-D1201A,NAME 5,38,61.43580256,30 x 16
6,P-D2301D,NAME 6,32,51.73541268,30 x 16
7,A-D0636,NAME 7,8.5,13.74221899,30 x 1.5
Имеет класс:
class Equipment
{
public string Title1 { get; set; }
public double Title2 { get; set; }
public string Title3 { get; set; }
}
и анализатор (спасибоочень для SO сообщества):
static IList<Equipment> Parse(string[] input)
{
var result = new List<Equipment>();
var header = input[0].Split(',').Select(t => t.Trim().ToLower()).ToList();
var title1Loc = GetIndexOf(header, "title1");
var title2Loc = GetIndexOf(header, "title2");
var title3Loc = GetIndexOf(header, "title3");
foreach (var s in input.Skip(1))
{
var line = s.Split(',');
result.Add(new Equipment
{
Title1 = line[title1Loc].Trim(),
Title2 = double.Parse(line[title2Loc]),
Title3 = line[title3Loc].Trim(),
});
}
return result;
}
static int GetIndexOf(IList<string> input, params string[] needles)
{
return Array.FindIndex(input.ToArray(), needles.Contains);
}
и пара кнопок, одна - получить файл и сохранить его путь к файлу в строке referenceFile, другая - проанализировать данные:
private void button2_Click(object sender, EventArgs e)
{
string[] data = File.ReadAllLines(referenceFile);
MessageBox.Show(string.Join(Environment.NewLine, data), "Your CSV");
}
В конечном итоге я хочу создать новый CSV-файл, который я могу хотя и пустым, поэтому для проверки того, что он получает из проанализированных данных, я использовал окно сообщения, которое отображает:
MyProject.Form1 + Equipment
повторяется 7 раз на новых строках.Так что он корректно перебирает мой 7-строчный файл, но на самом деле не генерирует то, что я хочу.Я не вижу явных ошибок?