2011-08-14 110 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