■RSS■
■CALENDAR■
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30   
<<前月 2010年09月 次月>>
■NEW ENTRIES■
■CATEGORIES■
■コミュニケーション■
■ARCHIVES■
■ECO■
■POWERED BY■
■COUNTER■



■PROFILE■
す~(Suzuki)
適当なプログラムばっかりしか作れない若輩プログラマです。
りっぱなSE目指して色々とお勉強中

エントリの内容は個人的に収集、実験した結果を元にしております。
内容の正確性などは一切保証されませんので、予めご了承くださいm<__>m
また、もしどなたかの権利を侵害してしまっている恐れがある場合などはご連絡お願いします。
■LOGO■
ORACLE MASTER Bronze Oracle Database 10g
■OTHER■
  • 処理時間 0.800773秒
Listの検索処理を実装したい! ~Findの使い方~
List<T>のインスタンスに対して検索処理ができるといいなってことありませんか?
例えばListに入っているのが別のクラスのインスタンスで、そのクラスの特定のフィールドがマッチするインスタンスを取得したいときとか。
サンプルを作ってみたので、そっちを見てもらうほうが早い汗
.NET Framework 2.0のC#で導入された「匿名メソッド」使ったのと使ってないの両方の例をだしてます。
匿名メソッド、delegate渡さなきゃなときに便利ですよね~。
匿名メソッドのお話は別の記事で。。。

List<T>.Find サンプル
  1. using System;
  2. using System.Collections.Generic;
  3. namespace hoge
  4. {
  5. public class Human
  6. {
  7. public int Age { get; set; }
  8. public int Gender { get; set; }
  9. public string Name { get; set; }
  10. public Human(int age, int gender, string name)
  11. {
  12. this.Age = age;
  13. this.Gender = gender;
  14. this.Name = name;
  15. }
  16. }
  17. public class ListFind
  18. {
  19. public static void Main()
  20. {
  21. List member = new List() {
  22. new Human(1, 1, "陽向"),
  23. new Human(2, 1, "陽菜"),
  24. new Human(3, 0, "陽斗"),
  25. new Human(4, 1, "陽菜乃"),
  26. new Human(5, 1, "さくら")
  27. };
  28. // 検索条件を固定とした例 ⇒ ひらがなの名前の子を探す
  29. Console.WriteLine(member.Find(FindHiragana).Name);
  30. // 検索条件を可変(外部に設定)とした例 ⇒ 男の子(Gender:0)を探す
  31. int gender = 0;
  32. Console.WriteLine(member.Find(delegate(Human h)
  33. {
  34. return h.Gender == gender;
  35. }).Name);
  36. }
  37. /// <summary>ひらがなの名前の子を検索</summary>
  38. /// 比較対象オブジェクト
  39. /// <returns>比較結果</returns>
  40. private static bool FindHiragana(Human h)
  41. {
  42. return System.Text.RegularExpressions.Regex.IsMatch(h.Name, @"^\p{IsHiragana}*$");
  43. }
  44. }
  45. }


実行結果
  1. さくら
  2. 陽斗


【MSDN】List.Findメソッド

| http://www3.to/su-house/index.php?e=21 |
| プログラミング::.NET Framework | 04:37 PM | comments (0) | trackback (0) |

PAGE TOP ↑