Проблема с LINQ, возвращающим набор результатов из массива Object [] внутри объекта - PullRequest
0 голосов
/ 13 апреля 2019

Рассмотрим следующий код:

var articlesDisplay = from product in db.ProductSearchData
                      select product.articles;

articlesDisplay = articlesDisplay.Where(a => a[].body.Contains(searchString));

Я пытаюсь загрузить набор результатов, но получаю ошибку компилятора, используя обозначение массива в предложении Where.Как мне поступить об этом?

Желаемый конечный результат - это объект var articleDisplay, который можно использовать в разбивке на страницы ASP.NET MVC.

Спасибо любому / всем за вашу помощь!

Ответы [ 2 ]

2 голосов
/ 13 апреля 2019

удалить обозначение массива

var articlesDisplay = from product in db.ProductSearchData
                      select product.articles;

articlesDisplay = articlesDisplay.Where(a => a.body.Contains(searchString));
1 голос
/ 14 апреля 2019

Лямбда-выражение похоже на объявление функции, но вместо method name(paramters){body } оно принимает форму parameters => body.Итак, это:

a => a[].body.Contains(searchString)

То же самое, что и это:

bool Method(Article article)
{
    return article[].body.Contains(searchString);
}

Это, очевидно, недопустимо, поскольку не компилируется.Вам нужна Func<T,bool> или функция, которая принимает один элемент и возвращает true или false в зависимости от того, должен ли он быть включен.Так что вы, вероятно, хотите это:

bool Method(Article article)
{
    return article.body.Contains(searchString);
}

Что означает следующее:

a => a.body.Contains(searchString).
...