.NET 9 Preview 1 で追加された LINQ メソッドの中の .CountBy
と .AggregateBy
は以前に書いてみました。
今日は .Index
を書いてみます。
■ 書いてみた
こんな感じで index が取れます。いいですね。
// 0:a,1:a,2:b,3:b,4:c,5:c,6:a,7:b,8:c,9:c,10:c,11:c,12:c,13:c, foreach (var (index, c) in "aabbccabcccccc".Index()) System.Console.Write($"{index}:{c},");
実行結果
0:a,1:a,2:b,3:b,4:c,5:c,6:a,7:b,8:c,9:c,10:c,11:c,12:c,13:c,
でもこれだとあまりよくわからないので、もうどういうことか少しわかりやすく書いてみますね。
// 0:a,1:a,2:b,3:b,4:c,5:c,6:a,7:b,8:c,9:c,10:c,11:c,12:c,13:c IEnumerable<(int index, char c)> e = "aabbccabcccccc".Index(); System.Console.WriteLine(string.Join(',', e.Select(m=> $"{m.index}:{m.c}")));
実行結果
0:a,1:a,2:b,3:b,4:c,5:c,6:a,7:b,8:c,9:c,10:c,11:c,12:c,13:c
■ 定義
定義は素直にこうでした。
public static IEnumerable<(int Index, TSource Item)> Index<TSource>(this IEnumerable<TSource> source);
■ いいですね。
いいですね。.NET 9 楽しむデス。そなえそう。