前回、最終的にこんなコードを書いたわけですが。
Dim source As Integer() = {1, 2, 3, 4, 5} Dim int2strConverter As New System.Converter(Of Integer, String)(Function(x) x.ToString) Dim s() = Array.ConvertAll(source, int2strConverter) Dim csv As String = Strings.Join(s, ",")
delegeteだと、また別に関数書かないとならないので、勢いラムダ式にしてしまったわけですが。
そもそも、VB2008系の構文使うなら、そして変換しつつ別の配列をおこすなら、こんなことしなくても Linq で十分いけるじゃん?と今日気づいた。
こんな感じ。上のよりはマシなのではと…
Dim source As Integer() = {1, 2, 3, 4, 5} Dim s = From x In source Select CStr(x) Dim csv = Strings.Join(s.ToArray, ",")
まあとりあえず当面は Linq で解決ということにしよう。
よねけん
ラムダ式使うなら以下のようにそこそこすっきりかけますよ。
Dim csv As String = String.Join(",", Array.ConvertAll(source, Function(x) x.ToString))
Link | 2010年9月30日 11:58
オールトの雲
ご指摘ありがとうございます。
我ながら修行が全く足りておりませぬ…
記事前段側のロジックをスリムにしたものですね。
結果がわかれば「ほほう」なんですが、その壁がなかなか越えられないんですよね(汗
精進あるのみだなあ。
Link | 2010年10月1日 01:11