第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 Linq 更新列表列值,如果值為空

使用 Linq 更新列表列值,如果值為空

C#
慕尼黑8549860 2021-10-24 17:43:15
我有List<Student>多個(gè)記錄public class Student{                public int? StudentId { get; set; }    public string StudentName { get; set; }    public int? AttendanceStatusId { get; set; }    public string AttendanceStatusDes { get; set; }     }在將數(shù)據(jù)發(fā)布到服務(wù)器時(shí),有時(shí)AttendanceStatusId和AttendanceStatusDes會(huì)出現(xiàn)null。當(dāng) List 記錄中的這 2 個(gè)值為空時(shí),我想設(shè)置AttendanceStatusId=1&AttendanceStatusDes="Present" 如何使用 Linq 查詢來(lái)做到這一點(diǎn)。謝謝
查看完整描述

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

    }

}


查看完整回答
反對(duì) 回復(fù) 2021-10-24
?
aluckdog

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";

  });


查看完整回答
反對(duì) 回復(fù) 2021-10-24
  • 3 回答
  • 0 關(guān)注
  • 224 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)