C# 学习笔记 0415

关于零碎的知识笔记总结,你可能需要知道的

一.Linq相关

Find()和First()与FirstOrDefault

  1. Find方法只能在List上使用,而后者能更广泛应用在IEnemerable上。
  2. First:取序列中满足条件的第一个元素,如果没有元素满足条件,则抛出异常
  3. FirstOrDefault:取序列中满足条件的第一个元素,如果没有元素满足条件,则返回默认值(对于可以为null的对象,默认值为null,对于不能为null的对象,如int,默认值为0)

Find最终是建立在Array的查找之上,而在IEnemerable上的FirstOrDefault是使用foreach查找的。因此,Find速度会比FirstOrDefault快很多,据测试可能会快一倍以上。

因此,在使用时,一定要注意这个区别:
1、当确信序列中一定有满足条件的元素时,使用First方法,取到元素后,无需判断是否为null
2、当序列中可能找不到满足条件的元素时,使用FirstOrDefault方法,然后,一定要对返回值是否为null,进行不同的处理

转载地址:csdn

二.WeiApi 相关

IActionResult的返回值类型

ActionResult继承了IActionResult

 JsonResult、RedirectResult、FileResult、ViewResult、ContentResult均继承了ActionResult

 所以IActionResult类型的函数可以返回所有直接继承和间接继承他的类型数据

 而且每种数据支持两种返回方法

类型 实例化对象 封装方法
json结果 jsonresult json(Object)
跳转 RedirectResault Redirect(url)
文件 FileResult File()
视图 ViewResault View()
文本 ContentResault Context(“”)

返回文件示例

  public FileResult GetFile([FromQuery] OrderExportInput input)
        {

            var filePath = "D:\\1.jpg";
            FileStream stream = System.IO.File.OpenRead(filePath);
            var provider = new Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider();
            var contentType = string.Empty;
            provider.TryGetContentType(filePath, out contentType);

            var fileData = new FileStreamResult(stream, contentType);
            fileData.FileDownloadName = $"2.jpg";
            return fileData;
        }
posted @ 2021-04-15 17:50  今晚打老虎!  阅读(53)  评论(0编辑  收藏  举报