2

Linq を学習しようとしていますが、ここで壁にぶつかっています。

複数の文字列を含むすべての記事を検索しようとしていますが、List を渡すときに .Contains を使用する方法がわかりません。

private void SearchArticles()
{
    AdminEntities db = new AdminEntities();

    var searchStrs = new List<string> {"search_string1", "search_string2"};
    var artListfull = db.view_M02Articles_SearchPublished(0, "").ToList();
    var artList = artListfull.FindAll(n => n.Bodytext.Contains(searchStrs));

    Label1.Text = artList.Count.ToString();
    Repeater1.DataSource = artList;
    Repeater1.DataBind();
}

ここで正しい構文は何ですか?

4

3 に答える 3

5

[編集]それBodyTextがタイプであると仮定するとstring

あなたはこれを試すことができます:

//the article body must contain "ALL" the search terms
var artList = artListfull.Where(art => searchStrs.All(art.BodyText.Contains));

また

//the article body must contain "At least one" of the search terms
var artList = artListfull.Where(art => searchStrs.Any(art.BodyText.Contains));

[編集2]str => art.BodyText.Contains(str)で置き換えるart.BodyText.Contains

于 2013-04-25T12:08:56.573 に答える