2014-04-24 60 views
0

我有兩個列表:國家名單和工作不能轉換爲void類型,以泛型列表

public List<Countries> getSharedCountries(string brandName) 
    { 
     var items = SharedJobs.Where(a => a.BrandName == brandName); 

     var items2 = items.OrderBy(a => a.CountryCode); 

     Countries = new List<Countries>(); 

     string Country = null; 

     foreach (var item in items2) 
     { 
      if (Country != item.CountryCode) 
      { 
       Country = item.CountryCode; 

       Countries.Add(new Countries() { CountryCode = item.CountryCode, JobIDs = getSharedJob(item.CountryCode) }); 
      } 
     } 
     return Countries; 
    } 

    public void getSharedJob(string Country) 
    { 
     var items = SharedJobs.Where(a => a.CountryCode == Country); 

     JobNetDetails = new List<JobDetail>(); 
     CareerBoardDetails = new List<JobDetail>(); 
     JobSharkDetails = new List<JobDetail>(); 
     JobServeDetails = new List<JobDetail>(); 

     int AusCount = 0; 

     foreach (var item in items) 
     { 
      if (Country == "AUS") 
      { 
       AusCount++; 

       if (AusCount % 4 == 0) 
       { 
        JobNetDetails.Add(new JobDetail() { JobPageTitle = item.JobPageTitle, JobID = item.JobID, JobUrl = item.JobUrl }); 
       } 
       else 
       { 
        JobServeDetails.Add(new JobDetail() { JobPageTitle = item.JobPageTitle, JobID = item.JobID, JobUrl = item.JobUrl }); 
       } 
      } 
     } 
    } 

在哪裏,我訪問方法getSharedJob,它的錯誤,給我錯誤的行列表,不能隱式地將void轉換爲system.generic.List?

我很困惑,爲什麼會發生這種情況?

+0

這是因爲你沒有返回任何東西返回類型是void – Neel

+0

我需要返回4個列表,從底部的方法,你會怎麼做呢? – user3529183

+0

您只能返回一個對象。因此,創建一個包含4個列表的類,或者您可以向該方法添加4個列表參數(並使用'out'標記它們。 – erikH

回答

0

嘗試下面的代碼,您所呼叫

public List<Countries> getSharedCountries(string brandName) 
      { 
       var items = SharedJobs.Where(a => a.BrandName == brandName); 

       var items2 = items.OrderBy(a => a.CountryCode); 

       Countries = new List<Countries>(); 

       string Country = null; 

       foreach (var item in items2) 
       { 
        if (Country != item.CountryCode) 
        { 
         Country = item.CountryCode; 
         foreach (var jobDetail in getSharedJob(item.CountryCode)) 
         { 
          Countries.Add(new Countries() { CountryCode = item.CountryCode, JobIDs = jobDetail.JobID }); 
         } 
        } 

       } 
       return Countries; 
      } 

      public List<JobDetail> getSharedJob(string Country) 
      { 
       var items = SharedJobs.Where(a => a.CountryCode == Country); 

       JobNetDetails = new List<JobDetail>(); 
       CareerBoardDetails = new List<JobDetail>(); 
       JobSharkDetails = new List<JobDetail>(); 
       JobServeDetails = new List<JobDetail>(); 

       int AusCount = 0; 

       foreach (var item in items) 
       { 
        if (Country == "AUS") 
        { 
         AusCount++; 

         if (AusCount % 4 == 0) 
         { 
          JobNetDetails.Add(new JobDetail() { JobPageTitle = item.JobPageTitle, JobID = item.JobID, JobUrl = item.JobUrl }); 
         } 
         else 
         { 
          JobServeDetails.Add(new JobDetail() { JobPageTitle = item.JobPageTitle, JobID = item.JobID, JobUrl = item.JobUrl }); 
         } 
        } 
       } 

       return JobServeDetails; 
      } 
1

當你的方法狀態的簽名的方法返回jobDetails,public void getSharedJob(string Country)它是無效的,所以它不會返回任何東西,你應該改變它,並返回你想要的清單。

編輯:當我閱讀評論時,你需要返回4個列表。 您有幾種選擇:

  • 您可以返回一個列表數組;
  • 您可以返回列表清單;
  • 你可以返回你自己的包含4個列表的類。
+0

如何返回4個列表的類? – user3529183

0

你的方法簽名說帶一個字符串變量並且什麼都不返回(void)。

public void getSharedJob(string country) 

JobIDs期待值

JobIDs = getSharedJob(item.CountryCode) 

所以你需要返回到的JobIDs類型,我認爲是整數的列表或JobDetails的列表相匹配的值。