Unityでも便利なLINQメソッドを色々使いたかったのでExtraLINQをUPM対応しました

github.com

前々から愛用していたmariusschulz/ExtraLINQ

例えばChunkとか、

int[] numbers = { 1, 2, 3, 4, 5, 6, 7 };
int[][] chunks = numbers.Chunk(3);
// chunks = [[1, 2, 3], [4, 5, 6], [7]]

Flattenとか、

int[][] numbers =
{
    new[] { 1, 2, 3 },
    new[] { 4, 5 },
    new[] { 6 }
};
int[] flattenedNumbers = numbers.Flatten();
// flattenedNumbers = [1, 2, 3, 4, 5, 6]

JoinedByとか、

string[] nameParts = { "The", "One", "Ring" };
string ringName = nameParts
    .Select(part => part.ToUpper())
    .JoinedBy(" ");
// ringName = "THE ONE RING"

他にもRandomとかShuffleとか、
とにかく、めちゃめちゃ便利なんですよ!!!!

今回は、さらにWithIndexとか、

string[] hobbitsWithIndex = { "Frodo", "Sam", "Merry", "Pippin" }.WithIndex();
// hobbitsWithIndex = [("Frodo", 0), ("Sam", 1), ("Merry", 2), ("Pippin", 3)]

MinByとか、MinByOrDefaultとか、TryGetFirstとか、
便利なメソッドを追加した上でUnityPackageManagerに対応したものがExtraLINQUnityです。

インポート方法

UnityPackageManagerに https://github.com/kyubuns/ExtraLINQUnity.git?path=Unity/Assets/ExtraLINQ を投げ込むだけ!

ご活用ください。