【问题标题】:convert Enumerable row collection <short> to short将 Ienumerable 行集合 <short> 转换为 short
【发布时间】:2013-03-06 20:45:28
【问题描述】:

在这行代码中我有这个错误不能隐式地将 Enumerable 行集合&lt;short&gt; 转换为short:

Month = (from item in query select (short)item.Month);

我想知道为什么我在查询变量中找不到 distinct() 或 count 方法。

这是我的方法:

 public bool IsEnableAccPosting(
      string CompanyCode, DateTime FromDate, DateTime ToDate, out short Month)
 {
     try
     {
         o_dmDebitAccounts = new dmDebitAccounts(sysInfo);

         bool IsEnable = false;

         DataTable dt = o_dmDebitAccounts.GetDebitInterestAccPeriods(CompanyCode);

         var query = from data in dt.AsEnumerable()
                     where data.Field<DateTime>("StartDate") == FromDate && 
                           data.Field<DateTime>("EndDate") == ToDate
                     select new 
                     {
                         Month = Convert.ToInt16(data.Field<short>("Month")),
                         Year = Convert.ToInt16(data.Field<short>("Year"))
                     };

         Month = (from item in query select (short)item.Month); //heres the error

【问题讨论】:

    标签: visual-studio-2010 c#-4.0


    【解决方案1】:

    该字段已在执行该操作的 linq 查询中键入为 Int16。你不需要投射它。

    试试下面的代码taken from here

    if (query.Any())
    {
        var result = query.First();
    
        // Console.WriteLine("Results: {0}", result.Month);
        Month = result.Month;
    
    }
    

    【讨论】:

    • 你的意思是:Month = (from item in query select item.Month);
    • 我这样做了,但我也没有工作,我想知道为什么我找不到 FirstOrDefault();
    • 没有。在代码中Month =Convert.ToInt16( data.Field&lt;short&gt;("Month")) 显然将匿名类型的 Month 属性转换为 Int16。没有理由再试一次,它已经是那种类型了。
    • var query = from data in dt.AsEnumerable() where data.Field("StartDate") == FromDate && data.Field("EndDate") == ToDate select new { Month = data.Field("Month"), Year =data.Field("Year")};
    • 为什么移除铸件会对你有帮助?!?您特别希望在您的问题中将值作为 int16 !?对不起,伙计,但我不确定你现在要做什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 2015-06-10
    • 1970-01-01
    相关资源
    最近更新 更多