【C#】C#中常用的方法总结

发布于:2022-10-20 ⋅ 阅读:(469) ⋅ 点赞:(0)

1. 字符串拆分再组合:

courseWithPrivilege.DeptNames = string.Join(",",
                        (privilege.DeptIds ?? string.Empty)
                        .Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(x =>
                            groups.FirstOrDefault(g => g.NodeID.ToString().ToLower() == x.ToLower())?.NodeName));

2.一个包含逗号的字符串 转换成 数组

var answerIds = answer.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                    .Select(int.Parse).ToList();

3. 返回2个参数:Tuple

private async Task<Tuple<IEnumerable<Training_ExamRecord_History>, int>> GetReviewExamRecord(string jobNumber, int pageNo, int pageSize)
        {
            var query1 = _db.Training_ExamRecord_History.Where( m => m.ReviewBy == jobNumber && m.Status == 0);
            var pagedQuery = await query1.OrderByDescending(x => x.CreatedDate).Skip((pageNo - 1) * pageSize).Take(pageSize).ToListAsync();
            return new Tuple<IEnumerable<Training_ExamRecord_History>, int>(pagedQuery, await query1.CountAsync());
        }

4. 对多个数据库同时操作进行写入或者删除时使用:

using (var trans = _db.Database.BeginTransaction())
       {
           trans.Commit();
       }

5. 2次排序,分页

var result = await query.OrderBy(x=>x.ToDo_State).ThenByDescending(x=>x.ID).Skip((page - 1) * numberPerPage).Take(numberPerPage).ToListAsync();

6. 多线程await的作用

var existTag = await _db.Blog_Contents.Where(t => t.Id == blog.Id).FirstOrDefaultAsync();

var existTag =_db.Blog_Contents.Where(t => t.Id == blog.Id).FirstOrDefaultAsync();

第二个不带await 关键字,查询的是线程任务,这个时候永远有数据,如果遇到: if(existTag == null),永远不会进入条件语句。

本文含有隐藏内容,请 开通VIP 后查看

网站公告


今日签到

点亮在社区的每一天
去签到