在 c# 上的表单中计算最小和最大计算时遇到问题

我正在创建一个具有多种功能的学生模块表单。我在读取列表框中的最小值和最大值时遇到问题。我已经挣扎了好几天,非常感谢任何形式的帮助。提前致谢!


我尝试过使用不同的数组,存储不同的值等。我认为代码中的问题来自没有存储“标记”。但我确信它正在工作,并且相信问题出在 15 中的代码行中。


public int MinMark()

        {

            int lowest = int.Parse(ModuleData.studentMark[0]);

            for (int index = 1; index < ModuleData.studentMark.Count;index++)

            {

                if (int.Parse(ModuleData.studentMark[index]) < lowest) 

                {

                    lowest = ModuleData.studentMark.ToString()[index];

                }

            }

            return lowest;

到目前为止,我的代码只是从列表中输出第一个索引。我已经研究了我所有的讲义,并尝试了我能想到的任何方法来让它发挥作用。


森栏
浏览 69回答 2
2回答

喵喔喔

线lowest&nbsp;=&nbsp;ModuleData.studentMark.ToString()[index];是不正确的,会给你字符串中一个字符的 char 值。上面一行所做的是获取字符串标记,再次将其转换为字符串,然后index从该字符串中选择索引处的字符。相反,您希望字符串作为整数,可以通过以下方式实现lowest&nbsp;=&nbsp;int.Parse(ModuleData.studentMark[index]);

慕少森

lowest&nbsp;=&nbsp;ModuleData.studentMark.ToString()[index];这一行几乎肯定是不正确的,因为您要返回集合的字符串表示形式(可能类似于"System.String[]"or&nbsp;"System.Collections.Generic.List'1[System.String]")并按索引从字符串中获取字符并将该字符隐式转换为整数。该行可能应该是lowest&nbsp;=&nbsp;int.Parse(ModuleData.studentMark[index]);但是,您可以将此方法替换为单个 LINQ 查询,如下所示:public&nbsp;int&nbsp;MinMark()&nbsp;=>&nbsp;ModuleDate.studentMark.Select(int.Parse).Min();这会将所有学生分数解析为整数,然后从集合中选择最小的分数。如果这仍然只返回第一个索引,那么第一个索引可能是您的情况下的最低值,或者该ModuleDate.studentMark字段没有按您预期的那样填充。
打开App,查看更多内容
随时随地看视频慕课网APP