WebBrowserオブジェクトからLinqで特定の文字列を含むリン

通常はLinqを使わず、foreachなどで回して取っていたが、
Castを使うことで、取得したオブジェクトのコレクションでLinqできるという記事を見つけて試してみたら上手くいったので、メモ。

      //ブラウザオブジェクトの取得
      WebBrowser br = (WebBrowser)sender;
      
      HtmlElementCollection ac = br.Document.GetElementsByTagName("a");
      
      if (ac == null) return;
      var aq = ac.Cast<HtmlElement>().Where(c => c.InnerText != null && c.InnerText.Contains("IDでログイン"));
      if (aq != null) aq.First<HtmlElement>().InvokeMember("Click");