2014-03-27 68 views
-1
public class StudentLibrary 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public int Status { get; set; } 
} 

列表contails學生圖書館從列表中提取字符串場

List<StudentLibrary> StudentInfo; 

你能幫我從列表中提取學籍。希望我有道理。

預先感謝您

+1

列表中的哪個學生的狀態? –

+2

_「希望我有道理。」_沒有。 _你想找什麼學生?你有沒有試過使用循環?你有什麼問題? –

+0

@MarcGravell學生馬克斯(statusID) – Sajid

回答

0

如果你心裏有一個特定的學生,你知道他們的ID:

var status = StudentInfo.Where(x => x.ID == studentId) 
         .Select(x => x.Status) 
         .FirstOrDefault(); 
+0

'Where'是多餘這裏,只是把'FirstOrDefault'拉姆達和訪問狀態屬性。 – Joe

+0

是的,但如果有機會找不到記錄,那麼在訪問「狀態」屬性之前,您需要單獨一行代碼來查看結果是否爲「空」。 –

+0

確實如此,但是這也會冒'status'爲null的風險,所以在某些時候,你(大概)會在你的代碼中檢查一個空值。 – Joe

2

狀態爲整數,但它並不重要 - 提取你可以使用LINQ投影算Enumerable.Select

var statuses = StudentInfo.Select(s => s.Status); 

如果要連接的所有狀態在一個字符串,然後String.Join可以幫助你:

var result = String.Join(",", StudentInfo.Select(s => s.Status)); 

UPDATE:如果你想最大的狀態來選擇學生:

var student = StudentInfo.OrderByDescending(s => s.Status).FirstOrDefault(); 
1

兩個步驟:

  • 找到你想要
  • 訪問的成員,您的學生要

例如:

var status = list[4].Status; 
//... 

或者:

var student = list.Find(x => x.ID == id); 
if(student != null) { 
    var status = student.Status; 
    //... 
} 

注意,後者將由Dictionary<int,Student>得到更好的服務;那麼你可以這樣做:

StudentLibrary student; 
if(lookup.TryGetValue(id, out student)) { 
    var status = student.Status; 
    //... 
} 
0
Var status = StudentInfo.Select(x=>x.Status)