List<int> aryList1 = new List<int>(); aryList1.AddRange(new int[] { 85, 92, 67, 94, 94 }); List<int> aryList2 = new List<int>(); aryList2.AddRange(new int[] { 50, 60, 57, 95 }); List<int> aryList3 = new List<int>(); aryList3.AddRange(new int[] { 95 }); List<List<int>> classGrade = new List<List<int>>(); classGrade.Add(aryList1); classGrade.Add(aryList2); classGrade.Add(aryList3); List<int> highestGrade(List<List<int>> p2) { List<int> result = new List<int>(); for (int i = 0; i < p2.Count; i++) { int max; List<int> temp = p2[i]; for (int j = 1; j < temp.Count; j++) { if (temp[0] < temp[j]) { max = temp[j]; temp[j] = temp[0]; temp[0] = max; } } result.Add(temp[0]); } return result; }; Console.WriteLine($"The highest grade is {highestGrade(classGrade).Max()}"); 改进代码
时间: 2024-03-20 09:41:37 浏览: 49
C#_List用法详解
可以将内部循环改为使用 LINQ 的 Max() 方法来查找列表中的最大值,而不必手动进行比较和交换。同时,可以使用 var 关键字简化代码。改进后的代码如下:
```
List<int> highestGrade(List<List<int>> p2)
{
List<int> result = new List<int>();
foreach (var temp in p2)
{
result.Add(temp.Max());
}
return result;
}
List<List<int>> classGrade = new List<List<int>>
{
new List<int> { 85, 92, 67, 94, 94 },
new List<int> { 50, 60, 57, 95 },
new List<int> { 95 }
};
Console.WriteLine($"The highest grade is {highestGrade(classGrade).Max()}");
```
阅读全文