2017-03-21 4 views
0

のためのRubyの#mapと#joinの同等:私はRubyで同じことをやっていた場合Tidyの私は、最近のC#プロジェクトから次の簡単な例持っているC#

HtmlAgilityPack.HtmlNodeCollection toNodes = node.SelectNodes(@".//div[@class='email-to']//span"); 
string toString = ""; 
foreach(HtmlAgilityPack.HtmlNode toNode in toNodes) 
{ 
    toString += toNode.Attributes["title"].Value + ", "; 
} 
toString = toString.Substring(0, toString.Length - 2); 

を、私はしたい:

to_string = node.select_nodes(".//div[@class='email-to']//span").map{ |to_node| 
    to_node.attributes["title"].value 
}.join(', ') 

私は自分自身がmap相当のC#で数回欲しいと思っていますが、まだ適切なものが見つかっていません。私はEnumerable.Aggregateのドキュメントを見つけましたが、それは私が望むかもしれないもののように見えますが、私は上記の例にそれをどのように適用するかを考え出すことができませんでした。

また、LINQの使用例を見てきましたが、他の例を上記のようなものに変換する方法について私の頭をはらうことはできませんでした。

C#で同じ結果を達成する方法が、私が行ったことと比べて、どのように達成するのが最善でしょうか?私の大きな懸念の一つは、可読性とメンテナンス性です。そのため、コードが不必要に難読化されるようなものは望ましくありません。

答えて

3

LINQ Select()は、あなたが探しているものであるように見える:

var result = String.Join(", ", 
       node.SelectNodes(".//div[@class='email-to']//span") 
        .Select(o => o.GetAttributeValue("title","")) 
      ); 
関連する問題