2011-08-14 82 views
0

我创建了一个Student类型的数组列表。 Student中有名称,主题信息。假设我的ArrayList具有像(sam,maths),(john,english),(mat,science)这样的值。如果我想找出哪个学生有科学流,那么如何在ArrayList中搜索它。如何在Arraylist中搜索

我认为这可能是通过使用binarysearch或indexof方法来完成的,但没有把它做好。

+0

具体'ArrayList'是一个数组? – naveen

+2

鉴于您使用C#4,为什么使用ArrayList而不是泛型集合? –

+0

类型的学生课程。这个类有一个构造函数来设置名称和主题的值。所以你可以说我们必须给namea和subject作为参数,而add.like,list.Add(新生(约翰,数学)),其中list是数组列表的名称 – Sandy

回答

0

多数民众赞成我是如何做到底。对不起,我忘了回答这个问题。

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; 
    } 
1

为什么你创建了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

+0

感谢mmorel,我转向列出泛型,它的工作非常完美。你可以看看我编辑过的代码,看看我是如何搜索的。欢迎提出建议。 – Sandy