C# IEnumrable(AsEnumerable)\Iqueryable(AsQueryable)\Cast\OfType\ToArray\ToDictionary\ToList\ToLookup功能含义及使用实例
时间: 2024-01-14 16:21:50 浏览: 241
以下是C#中常用的一些Enumerable和Queryable方法的功能含义及使用实例:
1. AsEnumerable(): 将一个序列向上转换为一个IEnumerable,强制将Enumerable类下面的查询操作符绑定到后续的子查询当中。
示例:
```csharp
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
IEnumerable<int> enumerable = numbers.AsEnumerable();
```
2. AsQueryable(): 将一个序列向下转换为一个IQueryable,它生成了一个本地查询的IQueryable包装。
示例:
```csharp
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
IQueryable<int> queryable = numbers.AsQueryable();
```
3. Cast<T>(): 将集合中的元素转换为指定类型。
示例:
```csharp
ArrayList list = new ArrayList { 1, 2, 3, 4, 5 };
IEnumerable<int> enumerable = list.Cast<int>();
```
4. OfType<T>(): 根据指定类型筛选集合中的元素。
示例:
```csharp
ArrayList list = new ArrayList { 1, "two", 3, "four", 5 };
IEnumerable<string> enumerable = list.OfType<string>();
```
5. ToArray(): 将集合转换为数组。
示例:
```csharp
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
int[] array = numbers.ToArray();
```
6. ToDictionary<TKey, TValue>(): 根据键选择器函数将元素放入Dictionary<TKey, TValue>。
示例:
```csharp
List<string> words = new List<string> { "apple", "banana", "cherry" };
Dictionary<string, int> dictionary = words.ToDictionary(word => word, word => word.Length);
```
7. ToList(): 将集合转换为List。
示例:
```csharp
IEnumerable<int> numbers = Enumerable.Range(1, 5);
List<int> list = numbers.ToList();
```
8. ToLookup<TKey, TElement>(): 根据键选择器函数将元素放入Lookup<TKey, TElement>(一对多字典)。
示例:
```csharp
List<string> words = new List<string> { "apple", "banana", "cherry" };
ILookup<char, string> lookup = words.ToLookup(word => word[0]);
```
阅读全文