2015-10-13 121 views
0

我有以下情形中,我试图用分组方法无法隐式转换类型“匿名类型#1 []”到“INT []”

//Gets MulitCourseIds from db of selected CourseIds 
     int[] _hasListCourseIds = (from mcd in _db.MultiCourseDetails 
           where _lstCourseIds.Contains(mcd.CourseId.Value) 
           group mcd.MultiCourseId by mcd.MultiCourseId into g 
           select new { multiCourseId = g.Key }).ToArray(); 
            ************ error is occuring here********** 

     if (_hasListCourseIds.Count > 0) 
     { 
      //Checks the count of courseIds from the db and selected courseIds 
      foreach (var _multiCourseId in _hasListCourseIds) 
      {     
       var _courseCount = _db.MultiCourseDetails          
            .Where(x => x.MultiCourseId == _multiCourseId) 
            .Count(); 
       if (_courseCount == _lstCourseIds.Count) 
       { 
        return true; 
       } 
      } 

我得到的错误,以获取数据库信息

无法隐式转换类型 '匿名类型#1 []' 到 'INT []'

提高代码的任何建议,也邀请了..

+0

如果你不关心这个类型,使用'var'而不是'int []' – singsuyash

+0

对不起,队友转换是必需的,因为我用它来检查内部循环,如问题所示.. – ksg

+0

'g。 Key'已经是'int'了吗?所以匿名类型也会有一个'int' – singsuyash

回答

2

问题是您正在投影anonymous类型,但将其分配给int阵列。既然你是突出一个属性不在此处需要一个匿名类型: -

int[] _hasListCourseIds = (from mcd in _db.MultiCourseDetails 
          where _lstCourseIds.Contains(mcd.CourseId.Value) 
          group mcd.MultiCourseId by mcd.MultiCourseId into g 
          select g.Key).ToArray(); 

我认为MultiCourseIdint

+0

'MultiCourseId'为'nullable int',所以我将'int [] _hasListCourseIds'改为'int?[] _hasListCourseIds'.如果您可以发布如何执行以上情况下'匿名类型'是必需的.. :) – ksg

+1

是和感谢您的答复.. – ksg

+0

@ksg - 嘿没有得到你 - “这将是有益的,如果你可以发布如何执行上述情况。你想存储匿名类型? –

相关问题