C# 学习笔记 0415
关于零碎的知识笔记总结,你可能需要知道的
一.Linq相关
Find()和First()与FirstOrDefault
- Find方法只能在List
上使用,而后者能更广泛应用在IEnemerable 上。 - First:取序列中满足条件的第一个元素,如果没有元素满足条件,则抛出异常
- 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;
}