C# 如何读取csv文件并显示行值和列值
因为我是c语言的初学者,我需要帮助。我有一个.csv文件,包含以下列中的学生详细信息,我在这里需要的是基于个人的最高分数,我需要得到如下输出: (/*csv文件中的数据在每行和每列单元格中可能为100*/) 姓名、数学、科学、英语(csv标题) 阿卡什,80,67,54 Manoj,64,56,72 苏巴斯,78,84,63 我可以执行读取操作并显示整行。但我的问题是,我想从每个科目的最高分数中显示学生和科目的名称 样本输出: 英语-Manoj 数学-Subas 科学-阿卡什C# 如何读取csv文件并显示行值和列值,c#,csv,C#,Csv,因为我是c语言的初学者,我需要帮助。我有一个.csv文件,包含以下列中的学生详细信息,我在这里需要的是基于个人的最高分数,我需要得到如下输出: (/*csv文件中的数据在每行和每列单元格中可能为100*/) 姓名、数学、科学、英语(csv标题) 阿卡什,80,67,54 Manoj,64,56,72 苏巴斯,78,84,63 我可以执行读取操作并显示整行。但我的问题是,我想从每个科目的最高分数中显示学生和科目的名称 样本输出: 英语-Manoj 数学-Subas 科学-阿卡什 我被夹在中间,任何
我被夹在中间,任何不使用VB的答案都会受到高度赞赏。我看不出您的需求描述与示例输出如何匹配。下面是获取每个科目以及该科目中成绩最高的学生的代码
List<string[]> data = new List<string[]>();
using (StringReader sr = new StringReader(csvText))
{
while (sr.Peek() > 0)
{
data.Add(sr.ReadLine().Split(','));
}
}
//Iterates through columns, skipping first one (names)
List<string> output = new List<string>();
for (int i = 1; i < data[0].Count(); i++)
{
string subjectName = data[0][i];
Dictionary<string,int> grades = new Dictionary<string, int>();
//Iterates through rows, skipping first one (headers)
for (int j = 1; j < data.Count; j++)
{
grades.Add(data[j][0],Convert.ToInt32(data[i][j]));
}
output.Add(subjectName + " - " + grades.Aggregate((l, r) => l.Value > r.Value ? l : r).Key);
}
列表数据=新列表();
使用(StringReader sr=新StringReader(csvText))
{
而(sr.Peek()>0)
{
Add(sr.ReadLine().Split(',');
}
}
//遍历列,跳过第一列(名称)
列表输出=新列表();
对于(int i=1;il.Value>r.Value?l:r).Key);
}
这道题的答案加起来很好,linq:非常感谢Thor!!!。。。我想这是可能的。。。。首先,我想到了在列表中单独使用“名称”列,后来为了数字,我想到了在列表中使用“标记”列。。。最后我把逻辑部分放在获得最高分数和名字上。。。无论如何,感谢您的帮助:DBy尽一切可能将您的解决方案也包括在这里,这样其他人就可以选择一个让他们喜欢的解决方案。