我正在尝试创建一个函数,该函数将从“courseinfo”数组及其“coursename”中找到最高的“votescores”值,并将其显示在我的viewcontroller上(只是通过一个普通的uilabel——我可以自己完成)。
我该如何找到最高的“votescores”值,并有它的“coursename”。
有没有办法在当前数组中对其进行排序?这样我就可以做一些类似的事情;
highestScoreLabel.Text=课程信息[X].votescores
或者我需要创建单独的变量?

 var courseInfo = [  winningCourseInfo(voteScores: 22, courseName: "Course 1"),
                     winningCourseInfo(voteScores: 34, courseName: "Course 2"),
                     winningCourseInfo(voteScores: 67, courseName: "Course 3"),
                     winningCourseInfo(voteScores: 12, courseName: "Course 4")]

最佳答案

银行代码1:

func ==(lhs: winningCourseInfo, rhs: winningCourseInfo) -> Bool {
    return lhs.voteScores == rhs.voteScores
}
func <(lhs: winningCourseInfo, rhs: winningCourseInfo) -> Bool {
    return lhs.voteScores < rhs.voteScores
}

extension winningCourseInfo : Comparable {}

let bestCourse = maxElement(courseInfo)

print(bestCourse.courseName) // "Course 3"

银行代码2:
let bestCourse = courseInfo.maxElement { $0.0.voteScores < $0.1.voteScores }

bestCourse?.courseName // "Course 3"

10-04 13:28