我有以下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>
这对我来说很好用。但是我在这里卡住了,想知道是否可以根据列表视图中的姓名列求出分数列的总和。
例如,获取Kelly的总分,获取James的总分等等。因此,列表视图将如下所示:
Name,Score
Kelly,9
James,6
Sara,1
John,3
我尝试使用Sum选项并想将其打印到标签上进行测试,但它没有工作,并出现错误提示“输入字符串的格式不正确”。
我在C#,WPF和XAML方面仍然缺乏经验,特别是在读取和解析CSV文件方面,因此我不确定如何处理这个问题。如果有关于此事的任何帮助或指针,将不胜感激!谢谢!