2015-10-13 123 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 - 嘿沒有得到你 - 「這將是有益的,如果你可以發佈如何執行上述情況。你想存儲匿名類型? –

相關問題