The following query is used to get data in which flagchecked is boolean.
var reducedList = alarmlog.Select(e =>
new {
e.ID,
e.alarmname,
e.alarmmessage,
e.metername,
e.starttime, e.flagchecked
}).ToList();
I am using reducedList to export data to excel. Excel displays boolean values as checkboxes.I would like to have text "True" or "Done" for corresponding boolean true/false.
You could use the ternary/conditional operator: ?: Operator
var reducedList = alarmlog.Select(e => new
{
e.ID,
e.alarmname,
e.alarmmessage,
e.metername,
e.starttime,
flagchecked = e.flagchecked ? "Done" : "Not Done" }).ToList();
The conditional operator works like: condition ? first_expression : second_expression;
condition ? first_expression : second_expression;
This means that: e.flagchecked ? "True" : "False";
e.flagchecked ? "True" : "False";
works the same as:
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();
So, for this: e.flagchecked ? "Done" : "Not Done"
e.flagchecked ? "Done" : "Not Done"
. If (e.flagchecked == true) it returns "Done" and when (e.flagchecked == false) it returns "Not Done"
You might check the ?: Operator link I posted above.
var reducedList = alarmlog.Select(e => new {
e.ID,
e.alarmname,
e.alarmmessage,
e.metername,
e.starttime,
flagchecked = e.flagchecked ? "Done" : "Undone"
}).ToList();
reducedList.ForEach(x => x.flagchecked == "True" ? x.flagchecked = "Done" : x.flagchecked = "Undone");
您可以在实例化reducedList
之后执行此reducedList
。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.