У меня есть 2 списка, и мне нужно знать, есть ли совпадения. Я попытался с помощью request.Interests.Intersect(x.Post.Tags.Split(' ')).Count() > 0
, но я получаю ошибкуLinq to Nhibernate - Сравнить 2 списка
System.NotImplementedException: метод Intersect не реализован.
Итак, я попробовал рекурсивную функцию, которая возвращает bool. И это как будто вызов функции просто игнорируется.
Вот моя функция
private bool GenerateInterestsExpression(string postTags, string[] interests)
{
if (interests.Length == 0)
return false;
string interest = interests[0];
var newInterests = interests.ToList();
newInterests.Remove(interest);
return GenerateInterestsExpression(postTags, newInterests.ToArray()) || postTags.ToLowerInvariant().IndexOf(interest.ToLowerInvariant()) >= 0;
}
вот что соответствующая часть моего выражения Linq выглядит.
request.Profile.Tags.Count == request.Interests.Length
||
(
request.Profile.Tags.Count != request.Interests.Length
&&
x.Post.Tags != String.Empty
&&
(
GenerateInterestsExpression(x.Post.Tags, request.Interests)
)
)
Когда GenerateInteresExpression имеет в нем точку останова, он не останавливается. Я попытался построить рекурсивную функцию для создания выражения на лету, но я не могу понять, как сгруппировать выражения linq вместе. Любые идеи о том, как это сделать с динамическим linq для linq для nhibernate?
Мне очень нужна поддержка пересечения! –