2016-05-26 8 views
0

ラムダ式をよりよく理解し、それを使っていくつかのコードをリファクタリングすることを試みています。 IEのモードが設定されているメタタグを見つけてエッジモードに変更し、特定のページのSharePointのマスターページをオーバーライドするバックエンドページの負荷で動作するコードをいくつか持っています。私は、ラムダ式を使用することによって、これは、より簡潔にしたいと思いますが、私は、関連するタグを選択する方法を正確に把握トラブルを抱えていますラムダ式による制御操作

foreach (HtmlMeta tag in Page.Header.Controls.OfType<HtmlMeta>()) 
    { 
     if (tag.Content.Contains("IE=", StringComparison.OrdinalIgnoreCase)) 
     { 
      tag.Content = "IE=Edge"; 
     } 
    } 

:ここで私は今、それがこれを達成しているコードがあります。

var t = Page.Header.Controls.Cast<Control>().Where(n => n is HtmlMeta); 

がどのように私は、ラムダ式を使用して、より簡潔に、コードの最初のブロックの機能を実現することができます:ここで私は今のところしている何ですか?次のようにLINQに翻訳することができ、更新するコントロールのリストを取得するクエリを構築

答えて

1

var t = Page.Header.Controls 
      .OfType<HtmlMeta>() 
      .Where(h => h.Content.Contains("IE=", StringComparison.OrdinalIgnoreCase)); 

LINQの目的は、クエリのためにあるので、データの変更は、まだループ構文を使用して行われる必要があります。

foreach (var tag in t) 
{ 
    tag.Content = "IE=Edge"; 
} 
関連する問題