C# 使用linq查找包含单词的所有文章
试图学习林克,但在这里碰壁了 我试图找到所有包含多个字符串的文章,但不确定在传递列表时如何使用.ContainsC# 使用linq查找包含单词的所有文章,c#,asp.net,linq,C#,Asp.net,Linq,试图学习林克,但在这里碰壁了 我试图找到所有包含多个字符串的文章,但不确定在传递列表时如何使用.Contains private void SearchArticles() { AdminEntities db = new AdminEntities(); var searchStrs = new List<string> {"search_string1", "search_string2"}; var artListfull = db.view_M02A
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();
}
private void SearchArticles()
{
AdminEntities db=新的AdminEntities();
var searchStrs=新列表{“search\u string1”、“search\u string2”};
var artListfull=db.view\u M02Articles\u SearchPublished(0,“”).ToList();
var artList=artListfull.FindAll(n=>n.Bodytext.Contains(searchStrs));
Label1.Text=artList.Count.ToString();
Repeater1.DataSource=艺术列表;
Repeater1.DataBind();
}
这里的正确语法是什么?[Edit]假设
BodyText
的类型是string
您可以尝试以下方法:
//the article body must contain "ALL" the search terms
var artList = artListfull.Where(art => searchStrs.All(art.BodyText.Contains));
或
[编辑2]将str=>art.BodyText.Contains(str)
替换为art.BodyText.Contains
与LINQ
var artList = artListfull.Where(a => searchStrs.Any(s => a.Bodytext.Contains(s)))
.ToList();
var artList= (from art in artFullList
from search in searchStrs
where art.Bodytext.Contains(search)
select art).ToList();
当你说“包含多个字符串的文章”时,你是指所有的字符串吗?或者只有一个以上?我需要匹配所有字符串的可能副本。这将起作用,尽管它会在正文文本上多次无效地迭代请注意,您可以替换
str=>art.BodyText.Contains(str)
只包含艺术体文本。包含@AlexG:我认为除了迭代“搜索项”和“体文本”之外,没有其他选择,它就像一个“加入”
var artList= (from art in artFullList
from search in searchStrs
where art.Bodytext.Contains(search)
select art).ToList();