Linq:如何为相应的布尔值选择某些文本“True”或“False”
本文关键字:文本 True False 选择 布尔值 Linq | 更新日期: 2023-09-27 17:57:00
以下查询用于获取 flagchecked 为布尔值的数据。
var reducedList = alarmlog.Select(e =>
new {
e.ID,
e.alarmname,
e.alarmmessage,
e.metername,
e.starttime, e.flagchecked
}).ToList();
我正在使用缩减列表将数据导出到 excel。Excel 将布尔值显示为复选框。我想为相应的布尔真/假提供文本"真"或"完成"。
您可以使用三元/条件运算符: ?: 运算符
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)它返回"Done",当(e.flagchecked == false)它返回"Not Done"
您可以查看我上面发布的 ?: 操作员链接。
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
后执行此操作。