假设我有这样的课程:
class From
{
public bool FlagOne { get; set; }
public bool FlagTwo { get; set; }
public bool FlagThree { get; set; }
}
...我想将这些列表转换为这些列表:
class To
{
public List<Flag> Flags { get; set; }
}
...Flag
看起来像这样:
public enum Flag
{
One,Two,Three
}
我写了一些代码:
var froms = new List<From>
{
new From {
FlagOne = false,
FlagTwo = true,
FlagThree = true
},
new From {
FlagOne = true,
FlagTwo = false,
FlagThree = true
}
};
var tos = froms.Select(from => new To {
Flags = // ....... what? what goes here?
}).ToList();
枚举值的名称和布尔标志无关紧要。没有必要进行反思。
语境
我有一个这样的数据库表:
+---------+---------+-----------+
| FlagOne | FlagTwo | FlagThree |
+=========+=========+===========|
| 0 | 1 | 1 |
+---------+---------+-----------+
| 1 | 0 | 1 |
+---------+---------+-----------+
我想制作一个看起来像这样的用户界面:
+-------------------------------------+
| Lorem blahdiblah FlagTwo, FlagThree |
+-------------------------------------+
| Lorem blahdiblah FlagOne, FlagThree |
+-------------------------------------+
我不必这样做;我只是认为这是一个用 LINQ 解决的有趣问题,但找不到任何答案。