gpt4 book ai didi

c# - 使用 LINQ 打印数组

转载 作者:太空狗 更新时间:2023-10-29 22:15:46 25 4
gpt4 key购买 nike

我得到了以下代码,我正在尝试打印 teenAgerStudents 而没有我在 LINQ 行之后创建的 foreach。我可以在 LINQ 行中添加打印吗?我可以用另一条新的 LINQ 行代替 foreach 打印吗?

class Student
{
public int StudentID { get; set; }
public string StudentName { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
Student[] studentArray = {
new Student() { StudentID = 1, StudentName = "John", Age = 18 } ,
new Student() { StudentID = 2, StudentName = "Steve", Age = 21 } ,
new Student() { StudentID = 3, StudentName = "Bill", Age = 25 } ,
new Student() { StudentID = 4, StudentName = "Ram" , Age = 20 } ,
new Student() { StudentID = 5, StudentName = "Ron" , Age = 31 } ,
new Student() { StudentID = 6, StudentName = "Chris", Age = 17 } ,
new Student() { StudentID = 7, StudentName = "Rob",Age = 19 } ,
};
Student[] teenAgerStudents = studentArray.Where(s => s.Age > 12 && s.Age < 20).ToArray();

foreach (var item in teenAgerStudents)
{
Console.WriteLine(item.StudentName);
}
};

最佳答案

这会起作用:

studentArray.Where(s => s.Age > 12 && s.Age < 20)
.ToList()
.ForEach(s => Console.WriteLine(item.StudentName));

Array.ForEach需要 Action<T>所以它没有返回值。如果您以后需要该数组,您应该坚持使用旧代码。

当然你也可以使用 ForEach在第二个声明中:

List<Student> teenAgerStudent = studentArray.Where(s => s.Age > 12 && s.Age < 20).ToList();
teenAgerStudent.ForEach(s => Console.WriteLine(s.StudentName));

但这会降低它的可读性(在我看来),所以我会坚持使用旧的 foreach在这种情况下循环。

关于c# - 使用 LINQ 打印数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35800716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com