내가 여기 걸릴 것 두 가지 접근 방법이있다 필요한 경우 문이 경우, 우선 순위를 변경하는 경우 n % 10
이있다/다른 경우 우선 순위를 전환 할 수 있습니다, 첫 번째 장황 하지만 당신은 아주 읽을 수있는 방식으로 뭘 하려는지 전달 :
var num = new List<string>(101);
for (int i = 0; i < 101 ; i++)
{
if (i == 0)
{
num.Add(i.ToString());
}
else if (i % 10 == 0)
{
num.Add("dTen");
}
else if (i % 2 == 0)
{
num.Add("dTwo");
}
else
{
num.Add(i.ToString());
}
}
두 번째는 다음과 같이 더 간결 LINQ-Y 형 접근 방식을 사용합니다. 나는 또한 계정으로 0, 그렇지 않으면 당신은 갈 어느 10
로 나누어 것으로보고받을 것이다 0 가장자리 케이스를 촬영했습니다
var num = Enumerable.Range(0, 101)
.Select(
n => n == 0 ? n.ToString() :
n % 10 == 0 ? "dTen" :
n % 2 == 0 ? "dTwo" :
n.ToString())
.ToList();
참고 크게 취향에 달려있다. 개인적으로는 후자의 구현을 위해 간결하지만 여전히 코드의 의도를 전달하므로 간다. 필자가 한 초보적인 테스트에서 더 빠르게 실행된다는 것을 보여줍니다.
그 코드에 무슨 문제가 있습니까? 두 항목으로 나눌 수있는 항목, 즉 20을 모두 추가하지 않겠습니까? – Ben