다음과 같은 코드가 있습니다. ->Select case using LINQ
- [인터넷에서 가져온] 실제 코드가 아닙니다. LINQ를 사용하여 사례 선택 개념을 표시하려고합니다. 조건이 내가 새로운 목록을 만드는 오전에 따라 내 코드에서 는C#/LINQ/Select Case : 코드 냄새입니까?
Int32[] numbers = new Int32[] { 1, 2, 1, 3, 1, 5, 3, 1 };
var numberText =
(
from n in numbers
where n > 0
select new
{
Number = n,
Text =
(
n == 1 ? "One" :
n == 2 ? "Two" :
n == 3 ? "Three" : "Unknown"
)
}
);
개체를하지만, 페이지 here 말한다 - "다형성과 조건을 바꾸기".
그래서, 문제는 구현의 같은 종류의 코드 냄새이며이 항상 엄격히 피해야 여부? LINQ는 컬렉션을 반복하고 새로운 개체를 조건부로 만드는 동안 확실한 선택입니다. 잘못 될 수 있습니까?
코드가 잘 보이네 – Alex
하지만 조건이 유형에 따라 다르면 참조 페이지에서 다형성으로 조건을 바꾸라고 말합니다. 이 조건은 값이 아닌 유형에 따라 다르므로 페이지가 적용되지 않습니다. –
코드에 32 비트 부호있는 정수의 전체 ASCII * 표현을 포함시키려는 계획이 아니라면 꽤 나쁜 냄새라고 말할 수 있습니다.) – Polynomial