【发布时间】:2009-08-25 22:17:27
【问题描述】:
是否可以将方法ForEach() 的用法替换为Select() 或其他方法,以便使用嵌套扩展方法在一个字符串中编写下一个代码?或者也许还有其他方法可以改进算法?
var list = new List<IStatementParser>();
System.IO.Directory.GetFiles(path, "*.dll")
.ForEach(f => System.Reflection.Assembly.LoadFrom(f)
.GetTypes()
.Where(t => !t.IsInterface && typeof(IFoo).IsAssignableFrom(t))
.ForEach(t => list.Add((IFoo)Activator.CreateInstance(t))));
return list.ToDictionary(k => k.Name, v => v.GetType());
它从实现IFoo 的path 中的程序集中加载所有类,并将它们添加到Dictionary<string, Type>,其中字符串为IFoo.Name
【问题讨论】:
标签: c# .net linq extension-methods ienumerable