tôi có phương pháp chữ ký sau đây:Làm cách nào để sử dụng LINQ để trả về số nguyên trong một mảng không khớp với thuộc tính số nguyên của một mảng khác?
internal static int[] GetStudentIDsThatAreNotLinked(PrimaryKeyDataV1[]
existingStudents, IQueryable<Student> linkedStudents)
PrimaryKeyData là một lớp học có ServerID và LocalID số nguyên như tài sản. Sinh viên là một lớp học (trong số các thuộc tính khác) có một số nguyên gọi là StudentID.
Trong tiếng Anh, những gì tôi muốn làm là trả về một mảng các số nguyên đó là trong existingstudents [...]. ServerID nhưng không phải trong linkedStudents [...]. StudentID
Nếu 'existingstudents' và ' linkedStudents 'là cả hai mảng nguyên, tôi sẽ sử dụng truy vấn LINQ như sau:
return from es in existingStudents where
!linkedStudents.Contains<int>(es) select es;
.. sau đó có thể được chuyển đổi thành một mảng int.
Những gì tôi muốn làm là cung cấp cho Chứa IEqualityOperator rằng sẽ xem xét một lớp PrimaryKeyData là tương đương với một class Student nếu PrimaryKeyData.ServerID == Student.StudentID
Vì vậy, tôi nghĩ rằng tôi cần một biểu thức lambda nhưng tôi 'rất bối rối về cách mà nó sẽ được xây dựng.
Tôi nghĩ rằng tôi đang đi đúng hướng nhưng có ai có thể giúp tôi vượt qua rào cản cuối cùng không?
Tôi đánh giá cao các chi tiết thêm về hiểu truy vấn nhưng không may, truy vấn trả về linkedstudents mà không phải là trong existingstudents nhưng tôi cần các sinh viên hiện tại không có mối liên kết với nhau –
@Neil: Tôi xin lỗi ... Tôi sẽ sửa chữa câu trả lời của tôi. – LBushkin
Cảm ơn và đã đánh dấu. Một sự xấu hổ, chúng tôi không thể chấp nhận nhiều câu trả lời vì cả hai đều khá nhiều tiền. –