C# Linq的Cast()是一个操作符,它用于将一些特定类型的序列中的元素转换为指定的类型。下面是关于使用Cast()操作符的完整攻略:
1. Cast()操作符的语法
Cast()操作符的语法如下:
IEnumerable<TResult> source.Cast<TResult>()
source
:这个是要转换类型的序列的类型。可以是IEnumerable\或IQueryable\ <TResult>
:这个是该过程中要转换成的类型。必须是引用类型。- 返回值:
Cast()
返回的是一个IEnumerable\类型的序列。
2. 使用Cast()操作符的示例
下面提供两个使用Cast()操作符的示例:
示例1:
using System;
using System.Collections.Generic;
using System.Linq;
class Animal {
public int ID { get; set; }
public string Name { get; set; }
}
class Dog : Animal{
public bool isPet { get; set; }
}
class Program {
static void Main(string[] args) {
List<Animal> animals = new List<Animal>() {
new Animal() { ID = 1, Name = "Tiger" },
new Dog() { ID = 2, Name = "Bobby", isPet=true },
new Animal() { ID = 3, Name = "Elephant" },
new Dog() { ID = 4, Name = "Snoopy", isPet=true },
new Animal() { ID = 5, Name = "Kangaroo" }
};
//使用Cast()将Animal类型的序列转换为Dog类型的序列
IEnumerable<Dog> dogs = animals.Where(a => a is Dog).Cast<Dog>();
foreach (var d in dogs)
Console.WriteLine(d.Name);
}
}
输出:
Bobby
Snoopy
上面的代码片段演示了如何使用Cast()将Animal类型的序列转换为Dog类型的序列。在这个例子中,我们首先将一个包含Animal和Dog类型的List
示例2:
using System;
using System.Collections.Generic;
using System.Linq;
class Employee {
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
class Program {
static void Main(string[] args) {
List<object> objs = new List<object>() {
new Employee(){ID = 1, Name = "张三", Age=18},
new Employee(){ID = 2, Name = "李四", Age=20},
new Employee(){ID = 3, Name = "王五", Age=22}
};
IEnumerable<Employee> employees = objs.Cast<Employee>();
foreach (var emp in employees)
Console.WriteLine(emp.Name + " - " + emp.Age);
}
}
输出:
张三 - 18
李四 - 20
王五 - 22
上面的代码片段演示了如何使用Cast()将Object类型的序列中的元素转换为Employee类型的序列。在这个例子中,我们首先创建一个包含Employee对象的Object列表。将该列表传递给Cast()方法以将列表中的元素转换为Employee类型,并将结果存储在一个Employee类型的序列中。
总结
Cast()操作符可以帮助我们将一个序列中的元素转换成指定类型的序列。本文提供了Cast()操作符的完整攻略以及两个详细的使用示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Linq的Cast()方法 – 将序列中的元素强制转换为指定类型 - Python技术站