LINQ从对象内的Object []数组返回结果集的问题

时间:2019-04-12 23:47:43

标签: asp.net linq ienumerable paging iqueryable

考虑以下代码:

for n, res in enumerate(result):
    print(f'result[{n}] = {res}')

result[0] = Vendita Residenziale
result[1] = New York
result[2] = Appartamento
result[3] = Prezzo:
result[4] = € 100.000/200.000
result[5] = - Metri quadri:
result[6] = 130/170

我正在尝试加载结果集,但使用Where子句中的数组表示法时出现编译器错误。我应该怎么做?

所需的最终结果是可以在ASP.NET MVC分页中使用的var articleDisplay对象。

感谢任何/全部的帮助!

2 个答案:

答案 0 :(得分:2)

删除数组符号

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

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

答案 1 :(得分:1)

lambda表达式就像函数声明一样,但是它以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).