![](/img/trans.png)
[英]Elegant Boolean LINQ Query flexible for Active = true or Active = true or false
[英]Linq: how to select certain text “True” or “False” for corresponding boolean values?
以下查詢用於獲取flagchecked為布爾值的數據。
var reducedList = alarmlog.Select(e =>
new {
e.ID,
e.alarmname,
e.alarmmessage,
e.metername,
e.starttime, e.flagchecked
}).ToList();
我正在使用reduceList將數據導出到excel。 Excel將布爾值顯示為復選框。我想為相應的布爾值true / false輸入文本“ True”或“ Done”。
您可以使用三元/條件運算符: ?:運算符
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;
condition ? first_expression : second_expression;
這意味着: e.flagchecked ? "True" : "False";
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 ? "Done" : "Not Done"
。 如果(e.flagchecked == true),則返回“完成” ;當(e.flagchecked == false),則返回“未完成”
您可以檢查我上面發布的?:運算符鏈接。
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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.