1. ホーム
  2. c#

[解決済み] C#/Linq: IEnumerableの各要素にマッピング関数を適用する?

2022-06-05 01:24:31

質問

の各要素を変換する方法を探していました。 IEnumerable の各要素をマッピング関数を使って別のものに変換する方法を探していますが、(Linq互換の方法で)何も見つかっていません。

(非常に単純な)例として、以下のようなことができるはずです。

IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };
IEnumerable<string> strings = integers.Transform(i => i.ToString());

しかし、私は何も見つけていません。つまり、それを実現する拡張メソッドを書くのはとても簡単です(基本的に必要なのは、ソースをラップして Enumerator を新しいクラスにラップし、そのクラスへの呼び出しを委譲するためのちょっとした定型コードを書くことです)、しかし、私はこれがかなり初歩的な操作であると期待していましたし、自分でそれを書くことは車輪の再発明のように感じられます。

それで...私が上で説明したことを可能にする何かがLinqにあるのでしょうか?

どのように解決するのですか?

あなたは、単に Select() の拡張メソッドを使用します。

IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };
IEnumerable<string> strings = integers.Select(i => i.ToString());

あるいはLINQの構文で

IEnumerable<int> integers = new List<int>() { 1, 2, 3, 4, 5 };

var strings = from i in integers
              select i.ToString();