[C#] List <string>のすべての文字列をLINQを使用して小文字に変換する方法


Answers

ToLower 元の文字列を変換するのではなく、小文字の文字列を返すためです。 だから、あなたはこのようなものが欲しいでしょう:

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

私は昨日、の私の興味をそそる反応の1つで、コードスニペットを見ました。 それはこのようなものでした:

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

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

myListのすべての項目を小文字に変換するために使用できることを期待していました。 しかし、それは起こりません...これを実行した後、myListのケーシングは変更されません。

ですから、私の質問は、LINQとLambda式を使って簡単に反復して同様の方法でリストの内容を変更する方法があるかどうかです。

ありがとう、マックス




ForEachAction<T>使用します。これは、不変でない場合にx影響を与える可能性があることを意味します。 xstringなので不変なので、ラムダで何もしないとそのプロパティが変更されます。 代替値を返すことができる独自の拡張メソッドを実装しない限り、Kyralessaのソリューションは最適です。