当前位置:  开发笔记 > 编程语言 > 正文

如何使用LINQ将List <string>中的所有字符串转换为小写?

如何解决《如何使用LINQ将List<string>中的所有字符串转换为小写?》经验,为你挑选了2个好方法。

昨天我在StackOverflow上的一个回复中看到了一个代码片段,这引起了我的兴趣.它是这样的:

 List myList = new List {"aBc", "HELLO", "GoodBye"};

 myList.ForEach(d=>d.ToLower());

我希望我可以使用它将myList中的所有项目转换为小写.但是,它不会发生...运行此命令后,myList中的大小不变.

所以我的问题是,是否有一种方法,使用LINQ和Lambda表达式轻松地迭代并以类似于此的方式修改列表的内容.

谢谢,马克斯



1> Jason Buntin..:

最简单的方法:

myList = myList.ConvertAll(d => d.ToLower());

与您的示例代码没有太大区别.ForEach循环原始列表,同时ConvertAll创建一个需要重新分配的新列表.


不是扩展方法.

2> Ryan Lundy..:

那是因为ToLower 返回一个小写字符串而不是转换原始字符串.所以你想要这样的东西:

List lowerCase = myList.Select(x => x.ToLower()).ToList();


此解决方案也适用于.NET Core,.NET Core中不存在ConvertAll.
推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有