Полагаю, вы хотите использовать LINQ. Вопрос в том, как хранятся значения «фильтра»? Я отвечу так, как понимаю ваш вопрос.
Если input
предполагается как условие, я бы предложил использовать Func<Object,bool>
. Это означает, что input
будет условием, которое вы ищете, и если оно будет найдено, оно вернет true
.
Вот простой пример:
IEnumerable <T> FindElements (Func<Object, bool> condition, IEnumerable<T> inputList)
{
List<T> outputList = new List<T>();
foreach(var element in inputList)
{
if(condition != null && condition(element))
outputList.Add(element);
}
return outputList;
}
Тогда, если вы вызываете функцию с заданными примерными параметрами:
string input[] = {"Test1","Test2"};
foreach(string s in input)
{
targetList = FindElements(element=>((cast)element).Name.Contains(s), collection);
}
Вы должны получить все элементы в collection
, имя которых имеет Test1 или Test2. Cast - это, конечно, имя класса, экземпляр которого создается элементом.