У меня есть следующие классы.Моя цель - отфильтровать Компоненты на основе productTypeField и downloadSpeedField.У меня есть список lstFilteredComps
, в который я хочу добавить компонент INTERNET productType, имеющий значение downloadSpeed меньше или равно только 5, если существует число компонентов больше 5.Если все компоненты меньше или равны downloadSpeed 5, он должен добавить компонент INTERNET с downloadSpeed меньше, чем 5.
Классы :
public ct_Component[] Components {
get {
return this.componentsField;
}
set {
this.componentsField = value;
}
}
public partial class ct_Component
{
private string descriptionField;
private string downloadSpeedField;
private string productTypeField;
}
Я пыталсяследующий код, но он удаляет компоненты с downloadSpeed 5 во всех случаях, как я помещу условие, чтобы проверить, существует ли downlaodSpeed больше 5 или нет.То есть мой код должен удалять компоненты, только если доступно более высокое значение, или, другими словами, FilterInternetComponentLessThan5MB
следует вызывать только при наличии более 5 МБ компонентов downloadSpeed.
ct_Component[] Components = response;
foreach (ct_Component comp in Components.Where(c => FilterInternetComponentLessThan5MB(c)))
{
list<ct_Component> lstFilteredComps= //add filtered components;
}
Метод FilterComponentLessThan5MB
private bool FilterComponentLessThan5MB(ct_Component component)
{
if (component.productType != "INTERNET" || (component.productType == "INTERNET"
&& int.Parse(Regex.Replace(component.downloadSpeed, @"[^\d]", "")) > 5))
{
return true;
}
else
return false;
}
Мне нужна проверка, например:
foreach (ct_Component comp in Components.Where(Components.any(x=>x.productType == "INTERNET" && int.Parse(Regex.Replace(x.downloadSpeed, @"[^\d]", "")) > 5) ? true : FilterInternetComponentLessThan5MB(c)))