using System.Linq; namespace asyncWhenAll { public static class ExtMethod { //扩展语法 public static int SumMe(this IEnumerable source) { int sum = 0; foreach (var item in source) { sum += item; } return sum; } //扩展语法 public static IEnumerable WhereMe(this IEnumerable source,Func func) { foreach (var item in source) { if (func(item)) yield return item; } } } internal class Program { static async Task Main(string[] args) { string[] files = Directory.GetFiles(@"C:\Users\61778\Desktop\enfi-boot-order\enfi-boot-module-system\src\main\java\org\enfi\config\init"); Task[] tasks = new Task[files.Length]; for (int i = 0; i < files.Length; i++) { tasks[i] = ReadCharsCount(files[i]); } int[] rs = await Task.WhenAll(tasks); Console.WriteLine(rs.SumMe()); foreach (var item in rs.WhereMe(n=>n>1200)) { Console.WriteLine(item); } string cj = "61,90,100,99,18,22,38,66,80,93,55,50,89"; Console.WriteLine(cj.Split(",").Average(s=>int.Parse(s))); } static async Task ReadCharsCount(string filename) { string s = await File.ReadAllTextAsync(filename); return s.Length; } } }