以下查询用于获取flagchecked为boolean的数据。
var reducedList = alarmlog.Select(e =>
new {
e.ID,
e.alarmname,
e.alarmmessage,
e.metername,
e.starttime, e.flagchecked
}).ToList();
我使用reducedList将数据导出到excel。 Excel将布尔值显示为复选框。我希望文本“True”或“Done”表示相应的布尔值true / false。
答案 0 :(得分:4)
您可以使用三元/条件运算符:?: Operator
var reducedList = alarmlog.Select(e => new
{
e.ID,
e.alarmname,
e.alarmmessage,
e.metername,
e.starttime,
flagchecked = e.flagchecked ? "Done" : "Not Done" }).ToList();
条件运算符的工作方式如下:condition ? first_expression : second_expression;
这意味着:e.flagchecked ? "True" : "False";
将相同的作为:
private string ConvertTrueFalseString(bool value)
{
if(value)
return "True";
else
return "False";
}
var reducedList = alarmlog.Select(e => new
{
e.ID,
e.alarmname,
e.alarmmessage,
e.metername,
e.starttime,
flagchecked = ConvertTrueFalseString(e.flagchecked)).ToList();
所以,为此:e.flagchecked ? "Done" : "Not Done"
。如果(e.flagchecked == true),则返回"完成" 以及(e.flagchecked == false)它返回"未完成"
您可以查看我上面发布的?: Operator链接。
答案 1 :(得分:1)
var reducedList = alarmlog.Select(e => new {
e.ID,
e.alarmname,
e.alarmmessage,
e.metername,
e.starttime,
flagchecked = e.flagchecked ? "Done" : "Undone"
}).ToList();
答案 2 :(得分:0)
reducedList.ForEach(x => x.flagchecked == "True" ? x.flagchecked = "Done" : x.flagchecked = "Undone");
您可以在实例化reducedList
。