我有一个使用查询创建的iQueryable集合,如下所示 -
var Results = DataClass.Links.OrderBy(mySel => mySel.Description)
.Where(mySel => mySel.Report_Id.Equals(NumID)
new Sections
{
SectID = mySel.Report_Section.SectID,
SectionDesn = mySel.Report_Section.ReportSectionDescription,
ReportPageTitle = mySel.tbl_Report.ReportPageTitle,
MyUrl = mySel.Link_Url
}).Distinct();
我还有第二个类型为List<string>
的列表,名为LookForMe,定义为
var LookForMe = new List<string> { "increase", "abc", "tuesday", "another" };
我现在尝试遍历Results系列中的每个项目,如果item.URL包含我的LookForMe列表中找到的值之一,如果是,那么就做一些事情。
foreach (var item in Results)
{
if (item.URL *contains any of the values in my LookFormE list*)
{
// then do something
}
}
我不确定如何编写if语句来查找当前迭代值是否包含LookForMe列表中的任何值。有什么想法让我走上正轨吗?谢谢你的时间。
答案 0 :(得分:1)
您的支票应该是:
if(LookForMe.Contains(item.URL))
如果列表item.URL
中存在LookForMe
,则返回true。
但是,如果您要比较列表中任何项目URL
的{{1}}的任何部分,那么您的检查应为:
if(LookForMe.Any(r=> item.URL.Contains(r)))
答案 1 :(得分:1)
你可以尝试这个:
foreach (var item in Results)
{
if (LookForMe.Any(x=>item.URL.Contains(x))
{
// then do something
}
}
使用Any
扩展方法,您正在查看LookForMe
中是否存在item.URL
中包含的任何世界。如果是,则返回true。否则,它返回false。