今天又看到了自己的项目有一段代码感觉不太好。
需求大概是这样的,有一表,里面有好多的记录,然后我们要求把表示默认的记录找出来,如果没有默认的记录的话就取第一条(或者承便一条)
然后他的写法是全部把数据库的数据取出来,判断 是不是有默认的。 没有的话取第一条。
我想可以改造成另一种形式,跟据默认字段进行排序,然后找到第一条。
下面就是我们的模拟代码
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
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