Я уже давно написал одну строку кода, поэтому, пожалуйста, будьте терпеливы, если я задаю тупой вопрос.C#: 'IEnumerable <Student>' не содержит определения для 'Intersect'
Несмотря на то, что IntelliSense показывает метод Intersect после имен, я получаю следующую ошибку при попытке сравнить два IEnumerables.
Я пытаюсь сравнить результат запроса базы данных по сравнению с упорядоченным списком в html.
'IEnumerable' не содержит определение для 'Intersect' и лучший метод расширения перегрузки 'Queryable.Intersect (IQueryable, IEnumerable)' требует приемник типа 'IQueryable'
namespace Data.Repositories
{
public class StudentsRepository
{
public class Student
{
public string FullName { get; set; }
}
public static IEnumerable<Student> GetData(string CardNumber, string Section)
{
// FullName varchar(300) in Database
return CommonFunctions.ExecuteReader1<Student>(QryStudentSectionDetails(CardNumber, Section)).AsQueryable();
}
}
}
namespace Tests.ActionsLibrary.StudentPaper
{
public class StudentActions:TestBase
{
bool IsMatch = false;
// Get Names from DataBase
IEnumerable<Student> Names = GetData(CardNumber, Section);
// Get Names from Ordered list in HTML
IEnumerable<IWebElement> OrderedList = driver.FindElements(By.XPath("//li[@ng-repeat='Names']"));
if (Names.Count() == OrderedList.Count() && Names.Intersect(OrderedList).Count() == OrderedList.Count()) // The error is shown here.
{ IsMatch = true; }
Интересно, что я делаю неправильно. Любая помощь будет оценена. Благодарю.
В конце код выглядит следующим образом:
IEnumerable<string> Names = GetData(CardNumber, Section).Select(s => s.FullName);
IEnumerable<string> OrderedList = driver.FindElements(By.XPath("//li[@ng-repeat='Names']")).Select(i => i.Text);
Спасибо большое за вашу помощь.
Как вы думаете, это будет пересекаться между 'Students' и' IWebElements'? У вас может быть другая проблема, но это действительно то, о чем вы, вероятно, должны позаботиться. – SimpleVar