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

问题描述 投票:0回答:2

请考虑以下代码:

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

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

我正在尝试加载结果集,但在Where子句中使用数组表示法得到编译器错误。我该怎么办呢?

期望的最终结果是var articlesDisplay对象,可以在ASP.NET MVC分页中使用。

感谢您的帮助!

asp.net linq ienumerable paging iqueryable
2个回答
2
投票

删除数组表示法

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

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

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).
© www.soinside.com 2019 - 2024. All rights reserved.