C#匿名メソッド1027

1929 ワード

 class Program {

        static void Main(string[] args) {

            SorAndShowFiles("Sorted by name", delegate(FileInfo f1, FileInfo f2) {

                return f1.Name.CompareTo(f2.Name);

            }

                );

            Console.ReadKey();

        }

       

        public static void SorAndShowFiles(string title, Comparison<FileInfo> sortOder) {

            FileInfo[] files = new DirectoryInfo(@"F:\").GetFiles();

            Array.Sort(files, sortOder);

            Console.WriteLine(title);

            foreach (FileInfo file in files) {

                Console.WriteLine("Name:{0}   Length:{1} bytes", file.Name, file.Length);

            }

        }

        //

    }


//匿名メソッドとLambda式の研究を始めたばかりで、一例を書いてみました
このコードは、最初に文字列リスト(string list)を初期化し、リストのFindAllメソッドで「sunny」で始まる文字列を検索し、最後に検索したすべての結果を出力します.
List<string> names = new List<string>();

            names.Add("Sunny Chen");

            names.Add("Sunny  Wang");

            names.Add("DDDD Crystal");

            //   

            List<string> found = names.FindAll(new Predicate<string>(delegate(string name) {

                return name.StartsWith("Sunny", StringComparison.OrdinalIgnoreCase);

            }));

            //   

            List<string> found2 = names.FindAll(delegate(string name) {

                return name.StartsWith("Sunny", StringComparison.OrdinalIgnoreCase);

            });



            //  Lambda 

            List<string> found3=names.FindAll(x=>(x.StartsWith("Sunny", StringComparison.OrdinalIgnoreCase)));



            if (found!=null) {

                foreach (string  item in found) {

                    Console.WriteLine(item);

                }

            }

            Console.ReadKey();