查找默认的一个实体如果没有就找第一个的写法

今天又看到了自己的项目有一段代码感觉不太好。

需求大概是这样的,有一表,里面有好多的记录,然后我们要求把表示默认的记录找出来,如果没有默认的记录的话就取第一条(或者承便一条)

然后他的写法是全部把数据库的数据取出来,判断 是不是有默认的。 没有的话取第一条。

我想可以改造成另一种形式,跟据默认字段进行排序,然后找到第一条。

下面就是我们的模拟代码

 1 void Main()
 2 {
 3     List<ABC> list = new List<ABC>(){
 4         new ABC(){IsMain=false,Name="Red"},
 5         new ABC(){IsMain=true,Name="Green"},
 6         new ABC(){IsMain=false,Name="Yellow"},
 7         new ABC(){IsMain=false,Name="Black"},
 8         new ABC(){IsMain=false,Name="White"},
 9         new ABC(){IsMain=false,Name="Orange"},
10     };
11     list.Dump();
12     var query = from it in list orderby it.IsMain descending select it;
13     query.FirstOrDefault().Dump(); //出来的是Green如果把 green去掉出来就是red了
14 }
15 
16 public class ABC
17 {
18     public bool IsMain
19     {get;set;}
20     public string Name
21     {get;set;}
22 }
23 


原文地址:https://www.cnblogs.com/lovebanyi/p/1870185.html