ToArray()方法是Linq中提供的一个方法,用于将一个序列转换为对应的数组。下面我们将详细讲解ToArray()方法的用法及其示例。
语法
ToArray()方法的语法如下:
public static TSource[] ToArray<TSource>(this IEnumerable<TSource> source);
其中,参数source
指定了要转换为数组的序列,注意是实现了IEnumerable<TSource>
接口的类型,而返回值则为类型为TSource
的数组。
示例
下面是两个示例:
示例1
int[] arr = {1, 2, 3, 4, 5};
var query = from n in arr where n % 2 == 0 select n;
int[] evenArr = query.ToArray();
Console.WriteLine(string.Join(",", evenArr)); // 输出 2,4
在这个示例中,我们声明了一个整型数组arr
,然后使用Linq
查询语句筛选出其中的偶数,并使用ToArray()
方法将其转换为数组evenArr
。最后使用Console.WriteLine()
方法输出结果。运行结果为2,4
。
示例2
class Student
{
public string Name {get;set;}
public int Age {get;set;}
public IList<string> Courses {get;set;}
}
Student[] students = new Student[]
{
new Student { Name = "Tom", Age = 20, Courses = new string[] {"Math", "English"}.ToList() },
new Student { Name = "Jack", Age = 18, Courses = new string[] {"Math", "Art"}.ToList() },
new Student { Name = "Mary", Age = 22, Courses = new string[] {"English", "Chemistry"}.ToList() },
};
var query = from s in students where s.Age >= 20 select s.Courses.ToArray();
foreach(var courses in query)
{
Console.WriteLine(string.Join(",", courses));
}
在这个示例中,我们声明了一个Student
类,其包含姓名、年龄和课程列表等属性。然后我们定义了一个Student
类型的数组students
,并使用Linq
查询语句,查询年龄大于等于20岁的学生的课程列表,再使用ToArray()
方法将其转换为数组。
运行后输出结果为:
Math,English
English,Chemistry
从上面的示例可以看出,ToArray()方法非常方便,可以用于将一些无法直接使用数组的集合或查询结果转换成数组,方便后续操作。