今回は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♪
を見てね。疲れた・・・