绑定匿名类型以创建BindingList

我试图从LINQ查询返回的匿名类型创建BindingList 但BindingList 不接受匿名类型,以下是我的代码

var data = context.RechargeLogs.Where(t => t.Time >= DateTime.Today). Select(t => new { col1 = t.Id, col2 = t.Compnay, col3 = t.SubscriptionNo, col4 = t.Amount, col5 = t.Time }); var tmp = new BindingList(data); 

在最后一行generics参数放置什么???

你可以写一个扩展方法:

 static class MyExtensions { public static BindingList ToBindingList(this IList source) { return new BindingList(source); } } 

并像这样使用它:

  var query = entities .Select(e => new { // construct anonymous entity here }) .ToList() .ToBindingList(); 

如果你需要在其他地方使用这个对象,我建议使用dynamic ,甚至更好的方法来简单地创建你需要的对象作为struct

 public class RechargeLogData { public int Id { get; set; } public string Company { get; set; } public string SubscriptionNo { get; set; } public string Amount { get; set; } public string Time { get; set; } } var data = context.RechargeLogs.Where(t => t.Time >= DateTime.Today). Select(t => new RechargeLogData() { Id = t.Id, Company = t.Compnay, SubscriptionNo = t.SubscriptionNo, Amount = t.Amount, Time = t.Time }); var tmp = new BindingList(data); 

数据共享的最低公共基类型。 例如对象,如果是这样的话。

 var tmp = new BindingList(data);