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();