Фильтрация списка HtmlElements на основе списка частичных идентификаторов
У меня есть HtmlElementCollection, и я хочу использовать Linq, чтобы получить список HtmlElements, идентификаторы которых содержат идентификатор из другого списка.
Итак, я попробовал пару вещей, ни одна из которых не сработала. Я получаю список из коллекции и пытаюсь отфильтровать его.
Это список частичных идентификаторов. Идентификаторы элементов различны, и у них есть идентификаторы, которые соответствуют этому списку плюс некоторые случайные числа в начале.
string[] ids = {"btadminh_struct.description",
"thtmlb_textView_6",
"thtmlb_textView_7",
"btadminh_struct.object_id",
"thtmlb_textView_12",
"zbtsalesset_struct.po_number_sold",
"thtmlb_textView_17",
"thtmlb_textView_21",
"thtmlb_textView_24",
"btcustomerh_z_followupdate",
"thtmlb_textView_29",
"btrefobjmain_ibibase",
"btrefobjmain_ibinstancedesc",
"btpartnerserviceto_struct.description_name",
"btpartnerset_contact_name",
"zzericempresp_struct.partner_no",
"zbtcsrowner_struct.partner_no",
"btcustomerh_struct.zcomments",
"thtmlb_textView_19",
"btadminh_servicecontractdescr",
"btcustomerh_zcontracttype_descr",
"btrefobjmain_network_id",
"btrefobjmain_node_id",
"btrefobjmain_site_id"};
Идентификатор элемента выглядит следующим образом:
"C29_W87_V88_btrefobjmain_network_instance",
"C29_W87_V88_btrefobjmain_network_id__items",
"C29_W87_V88_btrefobjmain_network_id",
"C29_W87_V88_btrefobjmain_network_id-btn",
"C29_W87_V88_btrefobjmain_network_id__key",
"C29_W87_V88_thtmlb_label_2",
"C29_W87_V88_btrefobjmain_service_id__items",
"C29_W87_V88_btrefobjmain_service_id",
"C29_W87_V88_btrefobjmain_service_id-btn",
"C29_W87_V88_btrefobjmain_service_id__key",
"C29_W87_V88_thtmlb_label_3",
"C29_W87_V88_btrefobjmain_networkadap_id__items",
"C29_W87_V88_btrefobjmain_networkadap_id",
"C29_W87_V88_btrefobjmain_networkadap_id-btn",
"C29_W87_V88_btrefobjmain_networkadap_id__key",
Поэтому я поместил свою коллекцию в список, который я могу запросить.
var elems = doc.All.Cast<HtmlElement>();
Я пробовал разные подходы, ни один из которых не работает. Я также хотел бы использовать Linq и избежать уродливого 2-D цикла foreach.
Есть идеи?