fork download
  1. using System;
  2. using System.Text;
  3. using System.Linq;
  4. using System.Collections.Generic;
  5.  
  6. public class Program
  7. {
  8.  
  9. public enum LogStatus{
  10. InProgress=1,
  11. FileNotFound=2,
  12. Success=3,
  13. Failed=4
  14. }
  15.  
  16. class LogDetails
  17. {
  18. public string Message;
  19. public LogStatus LogStatus;
  20. }
  21.  
  22. class Log
  23. {
  24. public List<LogDetails> LogDetails;
  25. public string Title;
  26. }
  27.  
  28.  
  29. public static void Main(string[] args)
  30. {
  31. var logs = new List<Log>(){
  32. new Log{
  33. Title="A",
  34. LogDetails=new List<LogDetails>(){
  35. new LogDetails{
  36. Message="AA",
  37. LogStatus = LogStatus.FileNotFound
  38. },
  39. new LogDetails{
  40. Message="AB",
  41. LogStatus = LogStatus.Success
  42. },
  43. new LogDetails{
  44. Message="AC",
  45. LogStatus = LogStatus.Failed
  46. }
  47. }
  48. },
  49. new Log{
  50. Title="B",
  51. LogDetails=new List<LogDetails>(){
  52. new LogDetails{
  53. Message="BA",
  54. LogStatus = LogStatus.InProgress
  55. },
  56. new LogDetails{
  57. Message="BB",
  58. LogStatus = LogStatus.Success
  59. }
  60. }
  61. }
  62. };
  63.  
  64. List<Log> failedLogs = logs
  65. .Where(l => l.LogDetails.Any(ld => ld.LogStatus==LogStatus.Failed))
  66. .ToList();
  67.  
  68. foreach(Log log in failedLogs)
  69. Console.WriteLine("Failed log found: Title={0} Details={1}"
  70. , log.Title
  71. , string.Join(", ",log.LogDetails.Select(d => d.Message).ToArray()));
  72. }
  73. }
Success #stdin #stdout 0.03s 33912KB
stdin
Standard input is empty
stdout
Failed log found: Title=A Details=AA, AB, AC