LINQ - 为匿名类型的只读属性赋值

 Struggle大飞哥 发布于 2023-01-30 16:36

我想从linq创建一个匿名类型.然后手动更改单个属性(status)的值,​​并将列表作为数据源提供给转发器.但是不要让我这样做因为它是只读的.有什么建议吗?

 var list = from c in db.Mesai
                   join s in db.MesaiTip on c.mesaiTipID equals s.ID
                   where c.iseAlimID == iseAlimID
                   select new
                   {
                       tarih = c.mesaiTarih,
                       mesaiTip = s.ad,
                       mesaiBaslangic = c.mesaiBaslangic,
                       mesaiBitis = c.mesaiBitis,
                       sure = c.sure,
                       condition = c.onaylandiMi,
                       status = c.status
                   };
 foreach (var item in list)
 {
     if (item.condition==null)
     {
          item.status == "Not Confirmed";
     }
 }
 rpCalisanMesai.DataSource = list.ToList();
 rpCalisanMesai.DataBind();

sloth.. 7

创建列表后,只需设置正确的值,不是在创建列表后尝试更改值.

var list = from c in db.Mesai
               join s in db.MesaiTip on c.mesaiTipID equals s.ID
               where c.iseAlimID == iseAlimID
               select new
               {
                   tarih = c.mesaiTarih,
                   mesaiTip = s.ad,
                   mesaiBaslangic = c.mesaiBaslangic,
                   mesaiBitis = c.mesaiBitis,
                   sure = c.sure,
                   condition = c.onaylandiMi,
                   status = c.onaylandiMi != null ? c.status : "Not Confirmed"
               };

此外,如果您可以更改属性,您的问题将是执行两次查询:首先在foreach-loop中,然后再次调用list.ToList()(这将创建匿名类型的新实例).

1 个回答
  • 创建列表后,只需设置正确的值,不是在创建列表后尝试更改值.

    var list = from c in db.Mesai
                   join s in db.MesaiTip on c.mesaiTipID equals s.ID
                   where c.iseAlimID == iseAlimID
                   select new
                   {
                       tarih = c.mesaiTarih,
                       mesaiTip = s.ad,
                       mesaiBaslangic = c.mesaiBaslangic,
                       mesaiBitis = c.mesaiBitis,
                       sure = c.sure,
                       condition = c.onaylandiMi,
                       status = c.onaylandiMi != null ? c.status : "Not Confirmed"
                   };
    

    此外,如果您可以更改属性,您的问题将是执行两次查询:首先在foreach-loop中,然后再次调用list.ToList()(这将创建匿名类型的新实例).

    2023-01-30 16:38 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有