最近、「C#プログラムの効率的な書き方」といふ本を讀むで、LINQ to Objectsに嵌まつてゐる。といつても、僕はC#ではなくIron Pythonでプログラムするのだが。


といふ訣で、これからしばらくIron PythonでLINQプログラムを書くためのテクを公開する。興味のある方は、Iron Pythonを導入の上で御覽ください(CPythonでは動作しません)


まつ゛AllメソッドをC#で使ふとかうなる。プログラムの意味は今後に少しづつ説明していく。けふは雰囲気だけ。

using System;
using System.Linq;

class Program
{
static void
Main (string[] args)
{
int[] a = {2, 1, 0, -1, 2};
Console.WriteLine (a.All (c => 0 != c) ? "Safe:": "Danger:");
foreach (var item in a)
{
if (0 != item)
{
Console.WriteLine (100/item);
}
}
}
}


これをIronPythonで書くとかうなる。


import clr
clr.AddReference ("System.Core")

from System import Console
import System
clr.ImportExtensions (System.Linq)


a = [2, 1, 0, -1, 2]

if a.All (lambda c: True if 0 != c else False):

Console.WriteLine ("Safe:")
for item in a:
Console.WriteLine (100/item)
else:
Console.WriteLine ("Danger !")


今囘のキモはプログラムではなく宣言にある。Iron PythonでLINQ to Objectsを使ふには、ピンクの部分を宣言する事。



あとの細かい事は、これから順次、記事として公開していく。