Student
LINQクエリ演算子を使用して、クラスを作成し、名前が姓の前にアルファベット順にある場合にのみ配列から生徒を選択するメソッドを作成するタスクがあります。私はStudent
クラスを書きました:
public class Student
{
private string firstName;
private string familyName;
private int age;
public Student(string firstName, string familyName, int age)
: this()
{
this.firstName = firstName;
this.familyName = familyName;
this.age = age;
}
public Student()
{
firstName = "Dancho";
familyName = "Mastikata";
age = 24;
this.firstName = firstName;
this.familyName = familyName;
this.age = age;
}
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
public string FamilyName
{
get { return familyName; }
set { familyName = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
}
そして、私はこれをコーディングしました:
public class StudentsManipulations
{
static void Main()
{
Student[] students = new Student[6]{new Student("Georgi", "Milanov", 21 ),
new Student("Ilko", "Pirgov", 30 ),
new Student("Neboisha", "Yelenkovich", 34),
new Student("Dimitar", "Berbatov", 32 ),
new Student( ),
new Student("Nikolai", "Bodurov", 24 )};
}
public static List<Student> StudentSortByFirstName(Student[] students)
{
List<Student> sortedStudents = from student in students
where student.FirstName.CompareTo(student.FamilyName) < 0
select student;
return sortedStudents;
}
}
残念ながら、whereキーワードにエラーがあり、完全には理解できません。
タイプ「System.Collections.Generic.IEnumerable」を「System.Collections.Generic.List」に暗黙的に変換することはできません。明示的な変換が存在します(キャストがありませんか?)。
何が間違っているのか理解するのを手伝ってくれませんか。