以下是一些C# Linq的高级用法和扩展方法例子:
1. 使用Lambda表达式
```csharp
var evenNumbers = numbers.Where(n => n % 2 == 0);
```
2. 使用SelectMany方法
```csharp
List> lists = new List>();
lists.Add(new List { 1, 2, 3 });
lists.Add(new List { 4, 5, 6 });
var flattenedList = lists.SelectMany(l => l);
```
3. 使用Aggregate方法
```csharp
int[] numbers = { 1, 2, 3, 4, 5 };
int product = numbers.Aggregate((a, b) => a * b);
```
4. 使用Zip方法
```csharp
int[] numbers1 = { 1, 2, 3 };
int[] numbers2 = { 4, 5, 6 };
var zippedNumbers = numbers1.Zip(numbers2, (n1, n2) => n1 + n2);
```
5. 使用GroupJoin方法
```csharp
var result = people.GroupJoin(orders, p => p.Id, o => o.PersonId,
(p, os) => new { Name = p.Name, Orders = os });
```
6. 使用TakeWhile和SkipWhile方法
```csharp
int[] numbers = { 1, 2, 3, 4, 5 };
var takeWhileNumbers = numbers.TakeWhile(n => n < 3);
var skipWhileNumbers = numbers.SkipWhile(n => n < 3);
```
7. 使用OfType方法
```csharp
object[] objects = { 1, "two", 3.0, "four" };
var strings = objects.OfType();
```
以上是一些C# Linq的高级用法和扩展方法例子,可以根据具体需求进行学习和使用。