LINQ - 如何在select或foreach循环中更改值?

时间:2010-04-04 17:42:34

标签: c# linq

IQueryable items = from rr in _dt.AllItems
                   where rr.ID == ItemID
                   select new{rr.Item, rr.SecondItem};

SecondItem返回false或true。是否可以用不同的字符串值替换(例如使用On和Off)并添加到项目(IQueryable)?

3 个答案:

答案 0 :(得分:2)

你可以这样做:

IQueryable items = from rr in _dt.AllItems
               where rr.ID == ItemID
               select new {
                   rr.Item,
                   SecondItem = rr.SecondItem.HasValue ? "Off" : rr.SecondItem ? "On" : "Off"
               };

答案 1 :(得分:1)

你的意思是

  var items = from rr in _dt.AllItems 
              where rr.ID == ItemID 
              select new
              {
                  rr.Item, 
                  rr.SecondItem == true ? "On" : "Off"
              };

答案 2 :(得分:1)

好的,我发现了。我在我的SQL数据库列中使用了一点类型(true或false)。当我选择LINQ时,我需要用(“开”或“关”)值替换。 以下代码符合我的需求

IQueryable items = from rr in _dt.AllItems
               where rr.ID == ItemID
               select new {
                   rr.Item,
                   SecondItem = rr.SecondItem.Value ? "On" : "Off"
               };