DataGridView没有绑定IEnumerable <TResult>但是List <TResult>

Ari*_*ian 1 lambda linq-to-sql c#-4.0

我写了这段代码:

public List<TResult> SelectAll<TResult>(Func<Regions, TResult> selector) where TResult : class
{
    using (RepositoryDataContext = new DataClasses1DataContext())
    {
        return RepositoryDataContext.Regions.Select<Regions, TResult>(selector).ToList<TResult>();
    }
}
Run Code Online (Sandbox Code Playgroud)

并以这种方式从表单中调用它:

dgvFindFirst.DataSource = clsr.SelectAll<SelectAllRegion>(MY SELECT LAMBDA EXP);
Run Code Online (Sandbox Code Playgroud)

但是当写一个像这样的方法:

public IEnumerable<TResult> SelectAll<TResult>(Func<Regions, TResult> selector) where TResult : class
{
    using (RepositoryDataContext = new DataClasses1DataContext())
    {
        return RepositoryDataContext.Regions.Select<Regions, TResult>(selector).AsEnumerable<TResult>();
    }
}
Run Code Online (Sandbox Code Playgroud)

DataGridView Not Bound任何Nothing返回.问题是什么?

Jac*_*ope 6

所述DataGridView DataSource属性可以是实现这些接口中的一个的任何物体:IList,IListSource,IBindingListIBindingListView,其中List<T>的做法,但IEnumberable<T>没有.参考:http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.datasource.aspx