我理解了闭包和lambda表达式的基本原则,但我正在尝试理解它们背后发生的事情,以及在我的代码中何时使用它们是/不是实际的。考虑以下示例,它接受一个名称集合并返回任何以字母C开头的名称...
static void Main(string[] args)
{
List<string> names = new List<string>();
names.AddRange(new string[]
{
"Alan", "Bob", "Chris", "Dave", "Edgar", "Frank"
});
names.FindAll(x => x.StartsWith("C")).ForEach(
i => Console.WriteLine(i));
}
首先,我是否有更直接的方式来编写这个表达式?其次,“FindAll”不会为保存匹配项的新集合分配内存吗?我确实看到语法更优雅了,但我想确保在处理更大的集合时不会遇到性能问题。编译器是否在幕后执行一些优化操作使我的担忧无效?