У меня есть следующий CSV-файл:
Name,Score
Kelly,5
James,5
Sara,1
Kelly,4
James,1
John,3
И я пытаюсь прочитать файл CSV, получить сумму баллов на основе имен и загрузить их в список.
Для начала я смог прочитать файл CSV и загрузить его в два списка для каждого столбца. ниже мой код:
public MainWindow()
{
InitializeComponent();
using (var fs = File.OpenRead(filepath))
using (var reader = new StreamReader(fs))
{
List<string> list0 = new List<string>();
List<string> list1 = new List<string>();
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var values = line.Split(',');
list0.Add(values[0]);
list1.Add(values[1]);
//sum = list1.Sum(x => Convert.ToInt32(x));
}
List0.ItemsSource = list0;
List1.ItemsSource = list1;
}
}
и вот код xaml, который я использовал:
<ListView Name="List0" HorizontalAlignment="Left" Height="258" Margin="0,33,0,0" VerticalAlignment="Top" Width="267" >
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding}"/>
</GridView>
</ListView.View>
</ListView>
<ListView Name="List1" HorizontalAlignment="Left" Height="258" Margin="272,33,0,0" VerticalAlignment="Top" Width="172" >
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding}"/>
</GridView>
</ListView.View>
</ListView>
И это у меня нормально работает. Но я застрял здесь, и мне было интересно, можно ли получить сумму столбца Score на основе имен в списке.
Например, получить общий балл Келли, получить общий балл Джеймса и т. д. Итак, список будет выглядеть так:
Name,Score
Kelly,9
James,6
Sara,1
John,3
Я попытался использовать параметр «Сумма» и подумал напечатать его на этикетке для проверки, но это не сработало, и я получил сообщение об ошибке «Входная строка была в неправильном формате».
Я все еще не очень разбираюсь в C#, WPF и XAML; особенно при чтении и анализе файлов CSV, поэтому я не уверен, как это сделать. Любая помощь в этом вопросе или указатели очень ценятся! Благодарю вас!