C# 从列表中提取字符串字段
名单续学生图书馆C# 从列表中提取字符串字段,c#,C#,名单续学生图书馆 public class StudentLibrary { public int ID { get; set; } public string Name { get; set; } public int Status { get; set; } } 列出学生信息; 你能帮我从名单中提取学生身份吗。希望我有道理 提前感谢状态为整数,但这无关紧要-对于提取,您可以使用LINQ投影运算符枚举。选择: List<StudentLibrary> S
public class StudentLibrary
{
public int ID { get; set; }
public string Name { get; set; }
public int Status { get; set; }
}
列出学生信息;
你能帮我从名单中提取学生身份吗。希望我有道理
提前感谢状态为整数,但这无关紧要-对于提取,您可以使用LINQ投影运算符
枚举。选择
:
List<StudentLibrary> StudentInfo;
如果要将所有状态连接到一个字符串中,则string.Join
可以帮助您:
var statuses = StudentInfo.Select(s => s.Status);
更新:如果要选择状态为max的学生:
var result = String.Join(",", StudentInfo.Select(s => s.Status));
如果您心目中有一个特定的学生,并且您知道他们的ID:
var student = StudentInfo.OrderByDescending(s => s.Status).FirstOrDefault();
两个步骤:
- 找到你想要的学生
- 访问所需的成员
var status = StudentInfo.Where(x => x.ID == studentId)
.Select(x => x.Status)
.FirstOrDefault();
或:
请注意,后者最好使用词典
;然后你可以做:
var student = list.Find(x => x.ID == id);
if(student != null) {
var status = student.Status;
//...
}
名单上哪个学生的状态?“希望我说得通。”不。你想找什么学生?你试过使用循环吗?您遇到了什么问题?@MarcGravell student with Max(statusID)
,其中
是多余的,只需将lambda放入FirstOrDefault
并访问status属性。是的,但这也有status
为空的风险,因此在某个点上,您(大概)是如果我想要Max(studentID),将在您的代码中进行空检查。在where子句中?appologies@GrantWiney您的查询对我有帮助吗?但我刚刚意识到,我需要使用Max(studentID)进一步过滤上述查询。
var student = list.Find(x => x.ID == id);
if(student != null) {
var status = student.Status;
//...
}
StudentLibrary student;
if(lookup.TryGetValue(id, out student)) {
var status = student.Status;
//...
}
Var status = StudentInfo.Select(x=>x.Status)