从kotlin的另一个创建集合

我想从一个集合中获取某个元素来创建另一个元素。

示例我有一个从这个对象创建的列表

Student (Id, Code, FirstName, LastName, Age, Birthday)` 

我想从第一个包含特定字段示例的集合创建一个新的集合

 NewStudent(FirstName, LastName, Age) 

我试图使用map ,但我不能得到正确的结果。

map适用于这种情况:

 data class Student(val id: Int, val code: String, val firstName: String, val lastName: String, val age: Int, val birthday: String) data class NewStudent(val firstName: String, val lastName: String, val age: Int) val students = listOf( Student(1, "A", "1F", "1L", 11, "1/1/2000"), Student(2, "B", "2F", "2L", 12, "1/2/2000"), Student(3, "C", "3F", "3L", 13, "1/3/2000") ) val newStudents = students.map { student -> NewStudent(student.firstName, student.lastName, student.age) } 

我同意kabuko,但想添加一个替代使用的map

甚至可以在一个lambdaexpression式(例如传递给map内部对象)中解构对象(即data类的对象):

 val newStudents = students.map { (_, _, fn, ln, age, _) -> NewStudent(fn, ln, age) } 

下划线表示与映射无关的属性。 这是一个更可读的解决方案。