【发布时间】:2017-03-15 10:50:45
【问题描述】:
我有以下 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 的总分等。所以 listview 应该是这样的:
Name,Score
Kelly,9
James,6
Sara,1
John,3
我尝试使用 Sum 选项并考虑将其打印到标签上进行测试,但它不起作用,并且我收到一条错误消息,提示“输入字符串的格式不正确”
我对 C#、WPF 和 XAML 的经验还不够丰富;特别是在读取和解析 CSV 文件时,所以我不知道该怎么做。非常感谢您对此事的任何帮助或指示!谢谢!
【问题讨论】: