/// <summary>
       /// 获取 投标结束的合同号(20个) ,要求降序
       /// </summary>
       /// <returns></returns>
       public List<String> GetContractNosWithOverDateBeforeNow()
       {
           try
           {
               List<String> results = (from icontracs in hq_bid.contracts                                      
                                       where (icontracs.C_OverDate <=DateTime.Now) && 
                                       (icontracs.C_ContractNo.StartsWith("H"))  
                                       orderby icontracs.C_ContractNo ascending
                                       select icontracs.C_ContractNo).Distinct().Take(20).ToList();
              // var myresults = from n in results orderby n select n;
               //return (List<String>)myresults;
               return results;
           }
           catch (Exception) { return new List<string>(); }
       }

解决方案 »

  1.   


     public List<String> GetContractNosWithOverDateBeforeNow()
      {
      try
      {
      List<String> results = (from icontracs in hq_bid.contracts   
      where (icontracs.C_OverDate <=DateTime.Now) &&  
      (icontracs.C_ContractNo.StartsWith("H"))    //您 这点是不是多了一个右括号?
      orderby icontracs.C_ContractNo ascending
      select icontracs.C_ContractNo).Distinct().Take(20).ToList();
      // var myresults = from n in results orderby n select n;
      //return (List<String>)myresults;
      return results;
      }
      catch (Exception) { return new List<string>(); }
      }
      

  2.   


    //试试 这样:
     public List<String> GetContractNosWithOverDateBeforeNow()
      {
      try
      {
      return (from icontracs in hq_bid.contracts   
      where icontracs.C_OverDate <=DateTime.Now &&  
      icontracs.C_ContractNo.StartsWith("H"   
      orderby icontracs.C_ContractNo ascending
      select icontracs.C_ContractNo).Distinct().Take(20).ToList();
      
      }
      catch (Exception) { return new List<string>(); }
      }
      

  3.   

     (from icontracs in hq_bid.contracts   
      where icontracs.C_OverDate <=DateTime.Now &&  
      icontracs.C_ContractNo.StartsWith("H")   
      orderby icontracs.C_ContractNo ascending
      select icontracs.C_ContractNo).Distinct().Take(20).ToList();
      

  4.   


    //更正2楼://试试 这样:  不行具体报什么错?
     public List<String> GetContractNosWithOverDateBeforeNow()
      {
      try
      {
      return (from icontracs in hq_bid.contracts   
      where icontracs.C_OverDate <=DateTime.Now &&  
      icontracs.C_ContractNo.StartsWith("H")  
      orderby icontracs.C_ContractNo ascending
      select icontracs.C_ContractNo).Distinct().Take(20).ToList();
      
      }
      catch (Exception) { return new List<string>(); }
      }
      

  5.   

    不报错,只是orderby 没有工作,得到的是一个没有排序的结果集,我想得到排序的
      

  6.   

    因为你orderby后又Distinct了
    你可以先Distinct再order by
      

  7.   


    List<String> results = (from icontracs in hq_bid.contracts  
      where (icontracs.C_OverDate <=DateTime.Now) && 
      (icontracs.C_ContractNo.StartsWith("H"))  
      select icontracs.C_ContractNo).Distinct().OrderByDescending(o=>o).Take(20).ToList();
      return results
      

  8.   

     public List<String> GetContractNosWithOverDateBeforeNow()
           {
               try
               {
                   List<String> results = (from icontracs in hq_bid.contracts
                                           where icontracs.C_OverDate <= DateTime.Now &&
                                           icontracs.C_ContractNo.StartsWith("H")
                                           // orderby icontracs.C_ContractNo ascending//.Substring(icontracs.C_ContractNo.Length -1) descending
                                           select icontracs.C_ContractNo  ).Distinct().ToList();
                   List<String> myresults = from n in results orderby n select n;
                   return (List<String>)myresults;
                  // return results;
               }
               catch (Exception) { return new List<string>(); }
           }
    错误 1 无法将类型“System.Linq.IOrderedEnumerable<string>”隐式转换为“System.Collections.Generic.List<string>”。存在一个显式转换(是否缺少强制转换?) F:\HQ_BID\HQ_BIDDING_BLL\BLL_Contract.cs 262 67 HQ_BIDDING_BLL
      

  9.   

     List<String> myresults = from n in results orderby n select n;
      return (List<String>)myresults;
    ===========
    var myresults= from n in results orderby n select n;
      return myresults.ToList();
      

  10.   

     public List<String> GetContractNosWithOverDateBeforeNow()
           {
               try
               {
                   List<String> results = (from icontracs in hq_bid.contracts
                                           where icontracs.C_OverDate <= DateTime.Now &&
                                           icontracs.C_ContractNo.StartsWith("H")
                                           // orderby icontracs.C_ContractNo ascending//.Substring(icontracs.C_ContractNo.Length -1) descending
                                           select icontracs.C_ContractNo  ).Distinct().ToList();
                   List<String> myresults = from n in results orderby n select n;
                   return (List<String>)myresults;
                  // return results;
               }
               catch (Exception) { return new List<string>(); }
           }
    错误 1 无法将类型“System.Linq.IOrderedEnumerable<string>”隐式转换为“System.Collections.Generic.List<string>”。存在一个显式转换(是否缺少强制转换?) F:\HQ_BID\HQ_BIDDING_BLL\BLL_Contract.cs 262 67 HQ_BIDDING_BLL