LINQ」タグアーカイブ

C#の配列でPythonのmapのような操作

Pythonを使っているとmapというリストの操作が便利です。

>>> a = list(range(5))
>>> a
[0, 1, 2, 3, 4]
>>> list(map(lambda e: e*2+1, a))
[1, 3, 5, 7, 9]

C#でもこれと同じようなことができないかと探してみたところ、LINQのSelectを使って同じような感じのコードが書けるみたいです。

using System;
using System.Linq;

public class Example
{
  static public void Main ()
  {
    int[] a = new int[]{ 0, 1, 2, 3, 4 };
    a = a.Select(e => e * 2 + 1).ToArray();
    foreach(int v in a) {
      Console.WriteLine(v);
    }
  }
}

実行結果

1
3
5
7
9

リンク

ruby – C# Array Map/Collect – Stack Overflow
https://stackoverflow.com/questions/2285496/c-sharp-array-map-collect

C#のコードを書くときに参考になる公式リンク

IEnumerable<T>のインターフェイス

IEnumerable(T) Interface (System.Collections.Generic)
https://msdn.microsoft.com/en-us/library/9eekhta0(v=vs.110).aspx

LINQ standard query operators

Standard Query Operators Overview (C#) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/standard-query-operators-overview

<summary>などのDocumentation Commentsタグ

Recommended Tags for Documentation Comments (C# Programming Guide) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/recommended-tags-for-documentation-comments