gpt4 book ai didi

c# - 在 LINQ 中重新排序记录

转载 作者:行者123 更新时间:2023-11-30 22:02:11 26 4
gpt4 key购买 nike

我有一个像这样的实体集

public class StateInformation
{
public string id { get; set; }
public bool ?locked { get; set; }
public bool ?hidden { get; set; }
}

在某些情况下,隐藏字段的值为true,例如

{
"columns": [
{
"id": "prescribingClNDC"
},
{
"id": "prescribingClNDCDes",
"locked": false
},
{
"id": "prescribindClGenericName",
"hidden": true,
"locked": false
},
{
"id": "prescribingClTheraputic",
"locked": false,
"width": 100
},
{
"id": "prescribingClTotalCost",
"locked": false,
"width": 100,
"hidden": true
}
]

这种情况我需要重新排序所有记录。也就是说,如果一条记录有隐藏字段值 'true' 将放在记录集的末尾,如

{
"columns": [
{
"id": "prescribingClNDC"
},
{
"id": "prescribingClNDCDes",
"locked": false
},
{
"id": "prescribingClTheraputic",
"locked": false,
"width": 100
},
{
"id": "prescribingClTotalCost",
"locked": false,
"width": 100,
"hidden": true
},
{
"id": "prescribindClGenericName",
"hidden": true,
"locked": false
}
]

在 linq 中是否有任何直接的方法可以处理这个......?

谢谢提前

最佳答案

尝试:

var info = new List<StateInformation>() {
new StateInformation() { id="1", locked = false, hidden = true },
new StateInformation() { id="2", locked = false, hidden = false },
new StateInformation() { id="3", locked = false}
};

var results = info.OrderBy(x => x.hidden.HasValue && x.hidden.Value).ToList();

输出将是:

2 False null 
3 False False
1 False True

关于c# - 在 LINQ 中重新排序记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27100032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com