【发布时间】:2021-01-29 02:49:55
【问题描述】:
我必须在带有 lambda 的 List 中找到通过参数数组传递的名称。我是否必须迭代以从数组中搜索相同的名称?
partial class StudentTestScoresProgram
{
static public List<Student> GetStudents()
{
List<Student> students = new List<Student>
{
new Student { Name = "Michael", Scores = new int[] { 94, 92, 91, 91 } },
new Student { Name = "Isabelle", Scores = new int[] { 66, 87, 65, 93, 86} },
new Student { Name = "Chastity", Scores = new int[] { 76, 61, 73, 66, 54} },
new Student { Name = "Chaim", Scores = new int[] { 94, 55, 82, 62, 52} },
new Student { Name = "Patience", Scores = new int[] { 91, 79, 58, 63, 55} },
new Student { Name = "Echo", Scores = new int[] { 74, 85, 73, 75, 86} },
new Student { Name = "Pamela", Scores = new int[] { 73, 64, 53, 72, 68} },
new Student { Name = "Anne", Scores = new int[] { 78, 96, 52, 79, 60} },
new Student { Name = "Bruno", Scores = new int[] { 62, 66, 70, 82, 74} },
new Student { Name = "Tanya", Scores = new int[] { 60, 77, 88, 99, 40} }
};
return students;
}
/// <summary>
/// Find a set of students and display their information
///
/// You MUST use lambda or Predicate/delegate with FindAll for this.
/// </summary>
/// <param name="students">list of students</param>
/// <param name="search">array of student names to find</param>
static void FindStudents(List<Student> students, params string[] search)
{
//I have to fill the code in here.
List<Student> subArray = students.FindAll(i => i.Name == search[]); //This is what I was thinking of
}
我要填代码,如何搜索数组?
程序是
static void Main(string[] args)
{
List<Student> students = GetStudents();
FindStudents(students, "Bruno", "Tanya", "Tony", "Sami");
FindStudents(students, "Xerxes");
}
输出应该是这样的
Searching for the following students:
Bruno
Tanya
Tony
Sami
Found the following students:
Name: Bruno, Scores: 62, 66, 70, 82
Name: Tanya, Scores: 60, 77, 88, 99
Searching for the following students:
Xerxes
Found the following students:
【问题讨论】:
标签: c# arrays list lambda findall