Procházet zdrojové kódy

分页,二元表达式

master
QYYEE před 5 roky
rodič
revize
750f1e0029

+ 43
- 1
后端/C#基础/async和await异步编程方法.md Zobrazit soubor

@@ -19,4 +19,46 @@
19 19
 > 用法
20 20
 - async 用在方法定义前面,await只能写在带有async标记的方法中。
21 21
 - 注意await异步等待的地方,await后面的代码和前面的代码执行的线程可能不一样
22
-- async关键字创建了一个状态机,类似yield return 语句;await会解除当前线程的阻塞,完成其他任务
22
+- async关键字创建了一个状态机,类似yield return 语句;await会解除当前线程的阻塞,完成其他任务
23
+
24
+
25
+- 同步
26
+```
27
+比如写ProgressBarItem时不用async异步和Task接口,返回时,直接return model
28
+private ProgressBarViewModel GetProgressBarItem(string connKey, string projectId)
29
+        {
30
+            var model = new ProgressBarViewModel();
31
+            _projectDbContext = DDDbContextFactory.Create(connKey);
32
+            //先过滤掉不想要的条件
33
+            var exectedScenes = _projectDbContext.SceneResults.Where(t => t.Ratio != "0" && (DateTime.Now - DateTime.Parse(t.StartTime)).TotalSeconds > 0);
34
+
35
+            //根据不同情况判断
36
+            string progressBarDesc = string.Empty;
37
+            if(exectedScenes.Any(t=> decimal.Parse(t.Ratio) < 1.0m))
38
+            {
39
+                progressBarDesc = exectedScenes.Min(t => decimal.Parse(t.Ratio)).ToString();
40
+            }
41
+            else
42
+            {
43
+                progressBarDesc = "1";
44
+            }
45
+
46
+            model.ProjectId = projectId;
47
+            model.ConnKey = connKey;
48
+            model.ProgressBar = progressBarDesc;
49
+            return model;
50
+        }
51
+```
52
+- 异步
53
+```
54
+private async Task<StatusViewModel> GetIssuccessItem(string connKey, string projectId)
55
+        {
56
+            var model = new StatusViewModel();
57
+            _projectDbContext = DDDbContextFactory.Create(connKey);
58
+            model.ProjectId = projectId;
59
+            model.ConnKey = connKey;
60
+            model.IsSuccess = (await _projectDbContext.SceneResults.Where(t => t.IsSuccess == "0").CountAsync()) > 0 ? "0" : "1";
61
+            return model;
62
+        }
63
+异步时用await形式对应assync
64
+```

+ 37
- 0
后端/C#基础/分页、二元.md Zobrazit soubor

@@ -0,0 +1,37 @@
1
+>Linq:使用Take和Skip实现分页
2
+- list = list.Skip(pageNum * pageSize).Take(pageSize).ToList();
3
+   - pageSize :表示一页多少条
4
+   - pageNum:表示页数,但是正确的页数是pageNum + 1。因为pageNum = 0,是第一页。pageNum = 1的时候,是第二页。
5
+   - Skip :表示从第pageNum * pageSize + 1条数据开始,也就是说再这之前有pageNum * pageSize条数据
6
+   - Skip :表示从第pageNum * pageSize + 1条数据开始,也就是说再这之前有pageNum * pageSize条数据
7
+
8
+```
9
+kaiguans = kaiguans.Skip(request.PagingModel.Page.Value - 1).Take(request.PagingModel.PageSize.Value);//分页;
10
+```
11
+
12
+> 二元表达式
13
+```
14
+ model.IsSuccess = (await _projectDbContext.SceneResults.Where(t => t.IsSuccess == "0").CountAsync()) > 0 ? "0" : "1";
15
+ 如果IsSuccess=="0"的个数大于0,IsSuccess="0"显示异常,否则的话IsSuccess="1"显示为正常
16
+```
17
+
18
+
19
+>C#中的decimal类型及用法
20
+- decimal 关键字指示 128 位数据类型。 与浮点型相比,decimal 类型具有更高的精度和更小的范围
21
+- 如果希望实数被视为 decimal 类型,请使用后缀 m 或 M,例如:
22
+decimal myMoney = 300.5m;
23
+
24
+
25
+> 自己写的Lamda表达式
26
+```
27
+ model.IsSuccess = (await _projectDbContext.SceneResults.Where(t => t.IsSuccess == "0").CountAsync()) > 0 ? "0" : "1";
28
+```
29
+```
30
+ //先过滤掉不想要的条件
31
+            var exectedScenes = _projectDbContext.SceneResults.Where(t => t.Ratio != "0" && (DateTime.Now - DateTime.Parse(t.StartTime)).TotalSeconds > 0);
32
+过滤到当前的时间减去以前的时间的相差秒数大于0。
33
+```
34
+```
35
+var projects = _iddDbContext.Projects.Where(t => true);
36
+把上下文中的数据取出
37
+```

Načítá se…
Zrušit
Uložit