[C# Lambda] List使用方法

using System;
using System.Collections.Generic;
using System.Linq;

public class MyClass
{
    public string StringField1 { get; set; }
    public string StringField2 { get; set; }
    public int NumberField { get; set; }
}

class Program
{
    static void Main()
    {
        List<MyClass> myObjects = new List<MyClass>
        {
            new MyClass { StringField1 = "A", StringField2 = "X", NumberField = 10 },
            new MyClass { StringField1 = "B", StringField2 = "Y", NumberField = 20 },
            new MyClass { StringField1 = "A", StringField2 = "X", NumberField = 30 }
        };

        var groupedAndSelected = myObjects
            .GroupBy(obj => new { obj.StringField1, obj.StringField2 })
            .Select(group => new
            {
                GroupFields = group.Key,
                SelectedFields = group.Select(obj => new { obj.NumberField }),
                Total = group.Sum(obj => obj.NumberField)
            })
            .Where(result => result.GroupFields.StringField1 == "A" && result.GroupFields.StringField2 == "X");

        foreach (var result in groupedAndSelected)
        {
            Console.WriteLine($"Group: StringField1 = {result.GroupFields.StringField1}, StringField2 = {result.GroupFields.StringField2}");
            foreach (var selected in result.SelectedFields)
            {
                Console.WriteLine($"Selected Field: NumberField = {selected.NumberField}");
            }
            Console.WriteLine($"Total: {result.Total}");
        }
    }
}


執行結果:

留言

這個網誌中的熱門文章

ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務

Oracle 例外控制(Exception Control)

Oracle 工作排程 DBMS_JOB 筆記