t100のプログラミング脱出作戦

自分のプログラミング脳をプログラムにして、いつかプログラミングから脱出してやるぞっ!とか夢見ながら、日々プログラム作っていく 百野 貴博 の日記です!今は、屋号『百蔵。』として、Silverlight・WPFを追跡中です! (2007/09/30)
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告 | トラックバック(-) | コメント(-) top↑
LINQを使ってTwitterの友達リストを取ってみた。
LINQを使ってTwitterの友達リストを取ってみた。

昨日のVSUGに刺激されて、LINQを使ってTwitterの友達リストを取ってみましたよ。
すごい簡単だ!
C#3.0で追加された仕様のおかげもあって、コードもスッキリするなー。
これは良いね。。。C#3.0


というわけで、以下、Twitterの友達一覧を取るコードです。(簡易版)
とりあえず、全部の友人のIDと名前を出してみる。


var url = String.Format("http://twitter.com/statuses/friends/{0}.xml", username);
var reader = XmlReader.Create(url);
var doc = XElement.Load(reader);
var query = from e in doc.Descendants("user")
select new { ID = e.Element("id").Value, Name = e.Element("name").Value }

foreach (var user in query)
{
Console.WriteLine("ID={0}, 名前={1}", user.ID, user.Name);
}



おおー。

XPathを使ってゴニョゴニョやる感じが、すごくスッキリしてる気が。
これは良いなぁ。
無名クラス+イニシャライザの組み合わせも良い感じ。

変数宣言も軒並み var で書いちゃってますが
それでも入力保管が正しく出るインテリセンスもすごい。
型推論すげぇ。


ついでに where句で絞り込むのもやってみよう。
さっきのコードに、ごにょっと手を加えて・・・


var url = String.Format("http://twitter.com/statuses/friends/{0}.xml", username);
var reader = XmlReader.Create(url);
var doc = XElement.Load(reader);

var query = from user in
(
from e in doc.Descendants("user")
select new { ID = e.Element("id").Value, Name = e.Element("name").Value }
)
where user.Name.Contains("m")
select user;

foreach (var user in query)
{
Console.WriteLine("ID={0}, 名前={1}", user.ID, user.Name);
}

クエリのネストも出来た!
ネストさせなくても where 句は使えるですが、それだと書き方が

where e.Element("name").Value.Contains("m")

になって、ちょっと読みにくいので
無名クラスを生成した後に絞り込む書き方にしてみました。
でも、パフォーマンス的には件数が多くなると不利になりそうだな。。。

もうちょっと考えてみよう。


いずれにしても、LINQ良いな~。

来年は、C# 2008 Express でバリバリ開発がんばろう。
でもって、Javaでも同等のサクサク感が出せるような
簡単フレームワークを作りたいところじゃ。

Javaは、JavaScriptとかスクリプト言語と融合させると
出来ることが広がりそうな予感。

がんばるぞ~。













管理者にだけ表示を許可する


トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。