2014-02-08 45 views
0

表的两列,当我有这个功能的一类错误输出得到的LINQ

public System.Collections.IList cpv_No_Date_list() 
    { 
     var cpvNoDateList = (from s in context.DB.CPVs 
          select new { s.cpv_no, s.cpv_date}).ToList(); 
     return cpvNoDateList; 
    } 

那么我调用这个函数,并给它作为一个源到一个下拉列表

 var Service = IOC.Get<IEntityListService>(); 
     var cpvNoDateSrc = Service.cpv_No_Date_list(); 

     cpvDrpdwn.DataSource = cpvNoDateSrc; 
     cpvDrpdwn.DataBind(); 

函数是从表中收集确切的数据,但问题是它不能正确显示它。 输出在下拉列表中是这样的:

{cpv_no = 5, cpv_date = 1/2/2013} 
{cpv_no = 7, cpv_date = 5/2/2013} 
{cpv_no = 8, cpv_date = 8/2/2013} 

如何摆脱在输出这些括号的???

回答

0

您所看到的默认ToString方法的annoymous类

创建一个新的类并重写的ToString

public class CpvNoAndDate 
{ 
    public int cpv_no { get; set; } 
    public DateTime cpv_date { get; set; } 

    public override string ToString() 
    { 
    return string.Format("cpv_no = {0}, cpv_date = {1}", cpv_no, cpv_date); 
    } 
} 

然后项目为新的类是这样的:

public System.Collections.IList cpv_No_Date_list() 
    { 
     var cpvNoDateList = (from s in context.DB.CPVs 
          select new CpvNoAndDate 
          { 
           cpv_no = s.cpv_no, 
           cpv_date = s.cpv_date 
          }).ToList(); 
     return cpvNoDateList; 
    }