昨天我在StackOverflow上的一个回复中看到了一个代码片段,这引起了我的兴趣.它是这样的:
ListmyList = new List {"aBc", "HELLO", "GoodBye"}; myList.ForEach(d=>d.ToLower());
我希望我可以使用它将myList中的所有项目转换为小写.但是,它不会发生...运行此命令后,myList中的大小不变.
所以我的问题是,是否有一种方法,使用LINQ和Lambda表达式轻松地迭代并以类似于此的方式修改列表的内容.
谢谢,马克斯
最简单的方法:
myList = myList.ConvertAll(d => d.ToLower());
与您的示例代码没有太大区别.ForEach
循环原始列表,同时ConvertAll
创建一个需要重新分配的新列表.
那是因为ToLower 返回一个小写字符串而不是转换原始字符串.所以你想要这样的东西:
ListlowerCase = myList.Select(x => x.ToLower()).ToList();