無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

C++/CLIを咥えてLINQをつつく0−まずは簡単なところから。本当に簡単?

今回はLINQをつつくピヨ。この記事はLINQをつつく1−IEnumerableから始まるLINQ♪の記事と連動しているから詳しい説明はそっちを見てね。
じゃあ早速シンプルなコードご覧あれ!


#pragma once

using namespace System;
using namespace System::Collections::Generic;
//System.Core.dllへの参照を自分で追加する必要あり(泣き
using namespace System::Linq;

ref class Wankuma {
public:
    static bool Where(String^ name) {
        return name->Length > 5;
    }

    static String^ Order(String^ name) {
         return name;
    }

    static String^ Select(String^ name) {
        return name;
    }
};

int main(array< System::String ^> ^args) { 
    array< String^>^ wankumas = gcnew array< String^> {
        "中博俊さん",  	"じゃんぬねっとさん",
        "夏椰さん", "なおこ(・∀・)さん",
        "まゆりんさん", "はなおか じったさん"
    };

    //WHERE句を実行
    IEnumerable < String^ > ^ iwankuma = 
        (IEnumerable< String^ > ^)wankumas;
    Func< String^, Boolean > ^ func = gcnew 
        Func< String^ ,Boolean > (Wankuma::Where);
    IEnumerable< String^ > ^ wresult = 
        Enumerable::Where< String^ > (iwankuma, func);

    //ORDER句を実行
    Func< String^, String^ > ^ func1 = gcnew 
        Func< String^, String^ > (Wankuma::Order);
    IEnumerable< String^ > ^ oresult = 
        Enumerable::OrderBy< String^, String^ > (wresult, func1);

    //SELECT句を実行
    Func< String^, String^ > ^ func2 = 
        gcnew Func <  String^, String^ > (Wankuma::Select);
    IEnumerable <  String^ > ^ result = 
        Enumerable::Select <  String^, String^ > (oresult, func2);

    //結果を出力
    Console::WriteLine(L"名前が五文字以上のわんくま同盟の方は・・・");
    for each (String^ str in result) Console::WriteLine(str);
    return 0;
}


正直言っていい?HTMLではこんな大量のC++/CLIプログラムは辛い・・・
それはさておき、このコードはね・・・おっと、詳しい説明は
LINQをつつく1−IEnumerableから始まるLINQ♪
を見てね。疲れた・・・
別窓 | C++/CLI | コメント:0 | トラックバック:0 | ∧top | under∨
<<中の人の徒然草60 | 無差別に技術をついばむ鳥 | VB.NETを咥えてLINQをつつく0−まずは簡単なところから。>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |