3 回答

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
不要使用 LINQ 或循環(huán),而是為您的模型設(shè)置默認(rèn)值。通過(guò)這種方式,您將始終確保按預(yù)期獲得模型,并且無(wú)需到處亂搞所有學(xué)生列表。
這可能不適用于 OP 案例,但值得一提的是,如果您的類(lèi)是可序列化的,那么使用這種“技術(shù)”您仍然可以獲得默認(rèn)值。
public class Student
{
public int? StudentId { get; set; }
public string StudentName { get; set; }
private int? _attendanceStatusId;
public int? AttendanceStatusId
{
//you can use null coalescing operator here
//like this: get { return _attendanceStatusId ?? 1; }
get { return _attendanceStatusId == null ? 1 : _attendanceStatusId; }
set { _attendanceStatusId = value; }
}
private string _attendanceStatusDes;
public string AttendanceStatusDes
{
//Or get { return _attendanceStatusDes ?? "Present" }
get { return _attendanceStatusDes == null ? "Present" : _attendanceStatusDes; }
set { _attendanceStatusDes = value; }
}
}

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
獲取過(guò)濾列表:
var missingStatus = Students.Where(s => !s.AttendanceStatusId.HasValue && AttendanceStatusDes == null);
然后迭代該列表,編輯這些項(xiàng)目的值。
foreach(var student in missingStatus)
{
student.AttendanceStatusId = 1;
student.AttendanceStatusDes = "Present";
}
這有幫助嗎?
您當(dāng)然可以在列表中的 foreach 中執(zhí)行此操作,但我不建議這樣做:
Students.Where(s => !s.AttendanceStatusId.HasValue && AttendanceStatusDes == null)
.ToList()
.ForEach(s => {
s.AttendanceStatusId = 1;
s.AttendanceStatusDes = "Present";
});
- 3 回答
- 0 關(guān)注
- 224 瀏覽
添加回答
舉報(bào)