我创建了一个Student
类型的数组列表。 Student
中有名称,主题信息。假设我的ArrayList
具有像(sam,maths),(john,english),(mat,science)这样的值。如果我想找出哪个学生有科学流,那么如何在ArrayList
中搜索它。如何在Arraylist中搜索
我认为这可能是通过使用binarysearch或indexof方法来完成的,但没有把它做好。
我创建了一个Student
类型的数组列表。 Student
中有名称,主题信息。假设我的ArrayList
具有像(sam,maths),(john,english),(mat,science)这样的值。如果我想找出哪个学生有科学流,那么如何在ArrayList
中搜索它。如何在Arraylist中搜索
我认为这可能是通过使用binarysearch或indexof方法来完成的,但没有把它做好。
多数民众赞成我是如何做到底。对不起,我忘了回答这个问题。
public int search(object sender, List<albums> al)
{
int i = -1;
TextBox txt = (TextBox)sender;
foreach (albums dc in al)
{
if ((dc.artist == txt) ||(dc.tag == txt))
{
i = (al.IndexOf(dc));
}
}
return i;
}
为什么你创建了Student类型的数组列表?
我敢肯定,你应该有一个泛型类型安全的列表,请:List<T>
做你的搜索,你可以使用LINQ:
List<Student> students = new List<Student>();
students.Add(new Student { Lastname = "Smith" });
students.Add(new Student { Lastname = "Foo" });
students.Add(new Student { Lastname = "SmithFoo" });
students.Add(new Student { Lastname = "SmithBar" });
var searchResults = from student in students
where student.Lastname.StartsWith("Smith")
select student;
此代码将在你的学生列表中搜索并返回三名学生:Smith,SmithFoo和SmithBar
感谢mmorel,我转向列出泛型,它的工作非常完美。你可以看看我编辑过的代码,看看我是如何搜索的。欢迎提出建议。 – Sandy
具体'ArrayList'是一个数组? – naveen
鉴于您使用C#4,为什么使用ArrayList而不是泛型集合? –
类型的学生课程。这个类有一个构造函数来设置名称和主题的值。所以你可以说我们必须给namea和subject作为参数,而add.like,list.Add(新生(约翰,数学)),其中list是数组列表的名称 – Sandy