lamabda表达式

单参数省略 ()

一句话省略return

有泛型编译器可以推断类型省略参数类型

lamabda表达式结合LINQ

1、扩展方法的链式调用

1
2
3
4
5
6
7
8
9
string[] words = { "keys", "coat", "laptop", "bottle" }; <------ 一个简单的数据
IEnumerable<string> query = words
.Where(word => word.Length > 4) (本行及以下2行) 过滤、排序、转换
.OrderBy(word => word)
.Select(word => word.ToUpper());
foreach (string word in query) (本行及以下3行) 打印结果
{
Console.WriteLine(word);
}

2、单纯的表达式

查询表达式是专门为LINQ设计的

1
2
3
4
IEnumerable<string> query = from word in words
where word.Length > 4
orderby word
select word.ToUpper();

3、范围变量

1
2
3
4
5
6
//引入局部变量length,多次使用
from word in words
let length = word.Length
where length > 4
orderby length
select string.Format("{0}: {1}", length, word.ToUpper());

null断言操作符

1
2
public override PaginatedListBase<ShiftTypeQueryResult> Result { get; set; } = default!;
//表明Result是可空引用类型,告诉编译器你确信这个引用类型在运行时不会为null,如果为null,将抛出运行时异常

Nullable结构体

image-20240725090036368

default!

在 C# 9.0 及更高版本中,! 被称为“非可空断言”操作符。当你在一个可空类型后面使用 !,你告诉编译器你确信这个变量在运行时不会为 null