C# oftype讲解
时间: 2023-12-02 21:43:06 浏览: 24
C#中的`OfType`方法是用于筛选指定类型的元素。它是一个泛型方法,可以用于任何实现了`IEnumerable`接口的集合类型。下面是一个使用`OfType`方法的例子:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
object[] values = { 1, "two", 3, "four", 5, "six" };
var result = values.OfType<string>();
foreach (string value in result)
{
Console.WriteLine(value);
}
}
}
```
在上面的例子中,我们定义了一个包含多种类型的数组`values`,然后使用`OfType`方法筛选出其中的字符串类型,并将结果输出到控制台上。输出结果为:
```
two
four
six
```
相关问题
c# AddRange用法讲解
AddRange() 是 C# 中 List 类的一个方法,用于将一个集合中的元素添加到另一个集合的末尾。该方法接受一个实现了 IEnumerable 接口的集合作为参数,可以是 List、数组或其他集合类。
AddRange() 的语法格式如下:
```csharp
public void AddRange(IEnumerable<T> collection);
```
其中,T 表示集合中元素的类型,collection 是要添加的集合。
下面是一个简单示例,演示了如何使用 AddRange() 方法将一个数组中的元素添加到 List 中:
```csharp
List<int> list = new List<int>();
int[] arr = { 1, 2, 3, 4, 5 };
list.AddRange(arr);
foreach (var item in list)
{
Console.WriteLine(item);
}
```
输出结果为:
```
1
2
3
4
5
```
可以看到,AddRange() 方法非常方便,可以快速地将一个集合中的元素添加到另一个集合中,减少了重复的代码。
C#中Map讲解
在C#中,Map可以指代可排序的集合类SortedDictionary或者哈希表类Dictionary。
1. SortedDictionary
SortedDictionary<TKey, TValue>类是一个可排序的泛型字典,它使用键来访问元素,键必须是唯一的。它是用红黑树实现的,其键值对按键的顺序进行排序,因此在插入和删除元素时会进行排序。
使用示例:
```
SortedDictionary<string, int> map = new SortedDictionary<string, int>();
map.Add("apple", 10);
map.Add("banana", 20);
map.Add("orange", 30);
int value = map["banana"]; // value = 20
```
2. Dictionary
Dictionary<TKey, TValue>类是一个非排序的泛型字典,它使用键来访问元素,键必须是唯一的。它是用哈希表实现的,因此在插入和删除元素时不会排序。
使用示例:
```
Dictionary<string, int> map = new Dictionary<string, int>();
map.Add("apple", 10);
map.Add("banana", 20);
map.Add("orange", 30);
int value = map["banana"]; // value = 20
```
需要注意的是,使用哈希表实现的Dictionary的查询和插入时间复杂度都是O(1),而使用红黑树实现的SortedDictionary的查询和插入时间复杂度都是O(log n),但是SortedDictionary会保持键的顺序。因此,在使用Map时需要根据具体的需求来选择使用哪种实现方式。