
이전 문제와 거의 동일하고 다른점은 출력해서 연산식 자체를 포함한다는 것이다.
using System.Text;
StreamReader sr = new(Console.OpenStandardInput());
StringBuilder sb = new();
int n = int.Parse(sr.ReadLine());
for(int i = 0; i++ < n;){
int[] x = Array.ConvertAll(sr.ReadLine().Split(), int.Parse);
int result = x[0] + x[1];
sb.AppendLine($"Case #{i}: {x[0]} + {x[1]} = {result}");
}
Console.WriteLine(sb);

이전 문제의 답에서 {x[0]} + {x[1]} = 만 추가해 주었더니 바로 통과 되었다.
바로 배운 Sum()알 사용해 보고자 했지만, 만약 사용하게 되면 연산식의 매개를 하나하나 뽑아서 문자열에 넣기 어려워지기 때문 인것도 있고, 결국 Sum()이 int result = x[0] + x[1];과 다를게 없기때문에 그냥 기존식을 가져다 사용했다.
using static System.Console;int a=int.Parse(ReadLine());
for(int i=0;i<a;i++){
Write(ReadLine().Split().Aggregate((n,b)=>$"Case #{i+1}: {int.Parse(n)} + {int.Parse(b)} = {int.Parse(n)+int.Parse(b)}\n"));
}

짧은 코드지만 알아보기 힘들었다. 무엇보다 출력을 위한 문자열에 일일히 하나씩 모두 int.Parse()를 사용해 총 4번의 int.Parse를 사용한 부분도 왜 이렇게 써야했나 비록 ReadLine().Split()의 결과가 string[]이기 때문에 그렇다 지만 굳이? 저렇게 써야만 했을까?
또한 Aggregate()함수를 굳이 꼭 사용했어야 했나 라는 생각이 들었다.

linq에서 가져온 함수로 보통 db의 내용을 집계하기 위한 여러가지 메소드를 포함하는 함수로, 위와 같이 메서드 내부에 람다식을 이용해 하나만 작성했을 때는 배열 내 모든 인자를 누적집계하는 방식인데.
예를들면 아래와 같은 방식이다.
double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 };
double product = doubles.Aggregate((runningProduct, nextFactor) => runningProduct * nextFactor);
// product = 88.33080999999999
하지만 이번 문제의 경우에는 누적집계를 하는 형식이 아니라 한줄한줄만 계산해서 출력하는 방식인데 작성자는 왜 이런방식을 채택한걸까?