关于c#:IEnumerable< T>

IEnumerable<T> VS IList<T> VS IQueryable<T>

新的mvc.net景和物。那个),但我似乎找到一个宽数组填充"选项的时候,想一个数据列表"。此刻在我的案例,我想从一个SELECT查询填充a list of项目和渲染结果输出JSON的,熊与我……

所以,我的视图模型类是什么样:

1
2
3
4
5
6
[Serializable()]
public class TFSquery
{
    public int MsgUid { get; set; }
    public DateTime CreateStamp { get; set; }    
}

然后我想我的陈述,它查询的输出:

1
2
List<TFSquery> z = (from msg in _DB.Msg
                    select new { msg.MsgUID, msg.CreateStamp }).ToList();

然后是输出到1环的列表,这样我可以在我的JSON字符串,然后输出的回报?当我使用VS VS iqueryable IEnumerable的名单????????

1
return Json(new { Result = z }, JsonRequestBehavior.AllowGet);

我的经验法则:

  • 当必须按索引添加、删除或引用项时,请使用列表。

  • 当必须对其运行特别查询时,请使用IQueryable

  • 默认使用IEnumerable

看起来您已经在"数据库"中进行了查询,所以我建议使用最简单的版本:IEnumerable来简单地遍历结果。


如果你是.NET和C的新手,我会花一些时间研究和了解不同的收集类型、不同的收集类型以及何时使用它们。你将经常使用收藏,你负担不起像其他回答者一样有一个"简单的一行"的摘要理解。

以下是有关.NET集合类型的好指南:http://msdn.microsoft.com/en-us/library/0ytkdh4s.aspx

iqueryable是它自己的特殊野兽,值得它自己的指导:http://msdn.microsoft.com/en-us/library/system.linq.iqueryable.aspx


每个接口都有自己的一组用途。

iQueryable用于延迟查询(即,它保存查询,但仅在枚举查询时执行查询)

可以枚举IEnumerable,就这样。

iList可以添加和删除项。