動作する一連のforeachループを使用して、ページ上にあるすべてのhtmlコントロールをジェネリックリストに追加するジェネリックメソッドがあります。これをLINQ式に変換することは可能ですか?
private List<T> GetControls<T>() where T : HtmlControl
{
List<T> c = new List<T>();
foreach (HtmlControl c1 in Controls)
{
foreach (HtmlControl c2 in c1.Controls)
{
if (c2.GetType() == typeof(HtmlForm))
{
foreach (Control c3 in c2.Controls)
{
if (c3.GetType() == typeof(ContentPlaceHolder))
{
foreach (HtmlControl c4 in c3.Controls)
{
if (c4.GetType() == typeof(T))
{
c.Add((T)c4);
}
if (c4.GetType() == typeof(PlaceHolder))
{
foreach (HtmlControl c5 in c4.Controls)
{
if (c5.GetType() == typeof(T))
{
c.Add((T)c5);
}
}
}
}
}
}
}
}
}
return c;
}