У меня есть коллекция 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. Любые идеи, которые помогут мне на правильном пути? Спасибо за ваше время.
Вы можете попробовать следующее:
foreach (var item in Results)
{
if (LookForMe.Any(x=>item.URL.Contains(x))
{
// then do something
}
}
Используя метод расширения Any
, вы смотрите, существует ли какой-либо из миров в LookForMe
, который включен в item.URL
. Если это так, он возвращает true. В противном случае возвращается false.
Ваш чек должен быть:
if(LookForMe.Contains(item.URL))
Это вернет true, если item.URL
присутствует в списке LookForMe
.
Но если вы пытаетесь сравнить любую часть URL
соответствующую любому элементу в вашем списке, тогда ваша проверка должна быть:
if(LookForMe.Any(r=> item.URL.Contains(r)))