我正在創建一個具有多種功能的學生模塊表單。我在讀取列表框中的最小值和最大值時遇到問題。我已經掙扎了好幾天,非常感謝任何形式的幫助。提前致謝!我嘗試過使用不同的數組,存儲不同的值等。我認為代碼中的問題來自沒有存儲“標記”。但我確信它正在工作,并且相信問題出在 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;到目前為止,我的代碼只是從列表中輸出第一個索引。我已經研究了我所有的講義,并嘗試了我能想到的任何方法來讓它發揮作用。
2 回答

喵喔喔
TA貢獻1735條經驗 獲得超5個贊
線
lowest = ModuleData.studentMark.ToString()[index];
是不正確的,會給你字符串中一個字符的 char 值。上面一行所做的是獲取字符串標記,再次將其轉換為字符串,然后index
從該字符串中選擇索引處的字符。
相反,您希望字符串作為整數,可以通過以下方式實現
lowest = int.Parse(ModuleData.studentMark[index]);

慕少森
TA貢獻2019條經驗 獲得超9個贊
lowest = ModuleData.studentMark.ToString()[index];
這一行幾乎肯定是不正確的,因為您要返回集合的字符串表示形式(可能類似于"System.String[]"
or "System.Collections.Generic.List'1[System.String]"
)并按索引從字符串中獲取字符并將該字符隱式轉換為整數。該行可能應該是
lowest = int.Parse(ModuleData.studentMark[index]);
但是,您可以將此方法替換為單個 LINQ 查詢,如下所示:
public int MinMark() => ModuleDate.studentMark.Select(int.Parse).Min();
這會將所有學生分數解析為整數,然后從集合中選擇最小的分數。如果這仍然只返回第一個索引,那么第一個索引可能是您的情況下的最低值,或者該ModuleDate.studentMark
字段沒有按您預期的那樣填充。
- 2 回答
- 0 關注
- 111 瀏覽
添加回答
舉報
0/150
提交
取消