MVC.net场景的新手(以及.net),但是当我想要用数据填充“列表”时,我似乎找到了各种各样的选项。在我的情况下,我想从选择的项目查询中填充一个列表,并以JSON的形式呈现输出结果,所以请耐心等待....
所以,我的viewmodel类是这样的:
[Serializable()]
public class TFSquery
{
public int MsgUid { get; set; }
public DateTime CreateStamp { get; set; }
}
然后我想用我的查询输出填充它:
List<TFSquery> z = (from msg in _DB.Msg
select new { msg.MsgUID, msg.CreateStamp }).ToList();
那么我会将输出循环到我的List中,以便我可以在我的Json返回字符串中输出吗?当我使用 LIST VS IENUMERABLE VS IQUERYABLE ??
return Json(new { Result = z }, JsonRequestBehavior.AllowGet);
答案 0 :(得分:33)
我的经验法则:
当您必须按索引添加,删除或引用某个项目时,请使用列表。
当您必须针对它运行即席查询时,请使用IQueryable
。
默认使用IEnumerable
。
看起来您已经在“数据库”中进行了查询,因此我建议使用最简单的版本:IEnumerable
,以便能够遍历搜索结果。
答案 1 :(得分:10)
如果您是.NET和C#的新手,我会花一些时间研究并了解不同的集合类型是什么,它们之间的区别以及何时使用它们。你经常使用收藏品,你不能像其他回答者那样有一个“简单的单行”概要理解。
以下是.NET集合类型的一个很好的指南: http://msdn.microsoft.com/en-us/library/0ytkdh4s.aspx
IQueryable是它自己的特殊野兽,值得拥有自己的指南: http://msdn.microsoft.com/en-us/library/system.linq.iqueryable.aspx
答案 2 :(得分:3)
每个界面都有自己的一组用途。
IQueryable用于延迟查询(即,它保存查询但仅在枚举时执行)
可以枚举IEnumerable,就是这样。
IList可以添加和删除项目。