我有以下代码 - >类似于Select case using LINQ
- 这不是实际代码 [从互联网上挑选]。只是尝试使用 LINQ 显示 Select Case 概念。在我的代码中,根据我正在创建新 List 对象的条件
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"
)
}
);
但是,这里的页面说 - “用多态性替换条件”。
那么,问题是这种实现是否是代码异味,是否应该 始终严格避免?在循环遍历集合和有条件地创建新对象时,LINQ 似乎是一个显而易见的选择。可能是错的?