C# LINW group句によるクエリ結果のグループ化


スポンサーリンク

group句を使うことで、特定のキーに基づいてクエリ結果をグループ化することができます。

group句の構文は以下のとおりです。

group 範囲変数 by キー
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] codes = {
                                 "hoge.java",
                                 "fuga.java",
                                 "bbb.cs",
                                 "ccc.cs",
                                 "apple.swift",
                                 "next.swift"
                             };
            var suffixesGroup = from code in codes
                           where code.LastIndexOf(".") != -1
                           group code by code.Substring(code.LastIndexOf("."));

            foreach (var suffixes in suffixesGroup)
            {
                Console.WriteLine("suffix is " + suffixes.Key);

                foreach (var fileName in suffixes)
                {
                    Console.WriteLine("file is " + fileName);
                }
                Console.WriteLine();


                Console.WriteLine();
            }

            Console.ReadLine();
        }
    }
}

これを実行すると、.javaや.swiftの拡張子をグルーピングした結果を取得できます。
suffixごとに結果をグループ化し、結果を取得しているわけです。