入れ子になったLINQ
ほんと久しぶりのソース付きのブログエントリです。
LINQ(LINQ to Object)が入れ子になっていても動作することを確認しました。
実際に書いたのはこんなソースです。
————————————————————————————
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
List<UserData> list1 = new List<UserData>
{
new UserData { Mail="user1@nifty.com", Name="user1"},
new UserData { Mail="user2@softbank.ne.jp", Name="user2"},
new UserData { Mail="user3@docomo.ne.jp", Name="user3"},
new UserData { Mail="user4@hotmail.co.jp", Name="user4"},
new UserData { Mail="user5@ezweb.ne.jp", Name="user3"},
new UserData { Mail="user6@docomo.ne.jp", Name="user6"}
};
List<string> list2 = new List<string> { "softbank.ne.jp", "docomo.ne.jp", "ezweb.ne.jp" };
var selectList = list1.Where(l1 => list2.Any(l2 => l1.Mail.EndsWith(l2))).ToList();
var restList = list1.Except(selectList).ToList();
Console.WriteLine("select");
selectList.ForEach(s => Console.WriteLine("Address:{0}", s.Mail));
Console.WriteLine("rest");
restList.ForEach(s => Console.WriteLine("Address:{0}", s.Mail));
Console.Read();
}
}
public class UserData
{
public string Mail { get; set; }
public string Name { get; set; }
}
————————————————————————————
ここでやってるのはメールアドレスが含まれるデータ(list1)を指定した携帯キャリア(list2)のデータとそうでないデータに分ける、という処理です。
以前同じようなことやろうとしてできなかった気がするのですが。。。
もしかしたらこのような実装が動作することになんらかの制約があるかもしれませんが、とりあえず上記のプログラムは動作しますってことで。
やっぱりLINQは便利だよなぁ。
ASP.NET MVC 3 Remote Validation で検証タイミングを遅らせる
Lazy Remote Validation with ASP.NET MVC 3
Remote Validation って JQuery Validator の仕様の関係でキー入力ごとに走っちゃうんですね。
この対応方法は覚えておかなくちゃ。
まぁ、Remote Validation を含め、クライアントでの検証をどう使うかまだ自分の中できちんとしたガイドライン作れてないんですが。
業務アプリだとサーバーサイドでないと確認できない検証って絶対あると思ってるんですが、そこでクライアント側での検証も利用しちゃうと検証エラーの発生するタイミングが2回でてくるんで、入力する人からみてうっとおしいって思われるんじゃないかと。
そのあたり、実際にはどう使っていくのがよいか考えきれてないです。。。
技術ひろば.netさんでお話させていただきます。
12月3日に技術ひろば.netさんの勉強会でお話させていただきます。
ネタは「ASP.NET Form認証 自由自在」
自由自在とは大きくですぎかな(w
Webサイトを構築するときたいてい必要になるForm認証について、ASP.NETは標準で対応するための仕組みをもってるわけですが、使いこなすには結構いろんなこと知らないといけません。
そのあたりの話をまとめてみようと思います。
- 基本の仕組み
- IIS7.xでの設定
- WebForm/ASP.NET MVC/WebPages それぞれの動作
- 簡単な独自認証の組み込み
そんな話になる予定です。
よろしかったらぜひ参加してくださいませ。