[C# Lambda] List使用方法

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class MyClass
  6. {
  7. public string StringField1 { get; set; }
  8. public string StringField2 { get; set; }
  9. public int NumberField { get; set; }
  10. }
  11.  
  12. class Program
  13. {
  14. static void Main()
  15. {
  16. List<MyClass> myObjects = new List<MyClass>
  17. {
  18. new MyClass { StringField1 = "A", StringField2 = "X", NumberField = 10 },
  19. new MyClass { StringField1 = "B", StringField2 = "Y", NumberField = 20 },
  20. new MyClass { StringField1 = "A", StringField2 = "X", NumberField = 30 }
  21. };
  22.  
  23. var groupedAndSelected = myObjects
  24. .GroupBy(obj => new { obj.StringField1, obj.StringField2 })
  25. .Select(group => new
  26. {
  27. GroupFields = group.Key,
  28. SelectedFields = group.Select(obj => new { obj.NumberField }),
  29. Total = group.Sum(obj => obj.NumberField)
  30. })
  31. .Where(result => result.GroupFields.StringField1 == "A" && result.GroupFields.StringField2 == "X");
  32.  
  33. foreach (var result in groupedAndSelected)
  34. {
  35. Console.WriteLine($"Group: StringField1 = {result.GroupFields.StringField1}, StringField2 = {result.GroupFields.StringField2}");
  36. foreach (var selected in result.SelectedFields)
  37. {
  38. Console.WriteLine($"Selected Field: NumberField = {selected.NumberField}");
  39. }
  40. Console.WriteLine($"Total: {result.Total}");
  41. }
  42. }
  43. }


執行結果:

留言

這個網誌中的熱門文章

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

Oracle 工作排程 DBMS_JOB 筆記

Oracle 例外控制(Exception Control)