2016-06-16 23 views
0

各オーダーごとに1つのレコードを取得する必要がありますが、レコードが連結される必要がある広告がある場合も必要です。しかし、私がConcatを使用すると、このエラーが発生します。System.Collections.Generic.IEnumerable型をSy​​stem.Collections.Generic.Listに暗黙的に変換できません

System.Collections.Generic.IEnumerable<x>を暗黙的にSystem.Collections.Generic.List<x>に変換できません。明示的な変換は、(あなたがキャストが欠けている?)が存在

DateTime now = DateTime.Now; 
var pom = (from moduleNews in db.CMS_News_NewsInWebModule 
      join module in db.CMS_News_WebModule on moduleNews.moduleKey equals module.moduleKey 
      join newsEdnm in db.CMS_News_NewsToEditionNumber on moduleNews.newsGUID equals newsEdnm.newsGUID 
      where module.moduleKey == id && newsEdnm.dateToBePublished < now && newsEdnm.CMS_News_Edition_Number.editionID == 2 
      //orderby newsEdnm.dateToBePublished descending, moduleNews.order 
      select 
      new NewsModules 
      { 
       order = moduleNews.order, 
       id = moduleNews.newsInWebModuleId, 
       moduleKey = module.moduleKey, 
       klientName = module.klientName, 
       maxNews = module.maxNews, 
       newsGUID = moduleNews.newsGUID, 
       title = moduleNews.CMS_News_News.title, 
       isAdvertise = moduleNews.isAdvertise, 
       advertise = moduleNews.advertise, 
       dateToBePublished = newsEdnm.dateToBePublished.Value 
      }).OrderBy(x => x.order).ThenByDescending(x => x.dateToBePublished).ToList(); //.GroupBy(x => x.order); 

pom = pom.GroupBy(n => n.order).Select(p => p.FirstOrDefault()).ToList(); 
var advirtise = (from moduleNews in db.CMS_News_NewsInWebModule 
       join module in db.CMS_News_WebModule on moduleNews.moduleKey equals module.moduleKey 

       where module.moduleKey == id && moduleNews.isAdvertise 
       //orderby newsEdnm.dateToBePublished descending, moduleNews.order 
       select 
       new NewsModules 
       { 
        order = moduleNews.order, 
        id = moduleNews.newsInWebModuleId, 
        moduleKey = module.moduleKey, 
        klientName = module.klientName, 
        maxNews = module.maxNews, 
        newsGUID = moduleNews.newsGUID, 
        title = moduleNews.CMS_News_News.title, 
        isAdvertise = moduleNews.isAdvertise, 
        advertise = moduleNews.advertise, 
        dateToBePublished = null 
       }).OrderBy(x => x.order).ToList(); 

pom = pom.Concat(advirtise); 

答えて

3

ここでの問題はこれです:

pom = pom.Concat(advirtise); 
^ ^-------+------------^ 
|   | 
|   +-----> returns IEnumerable<Something> -----+ 
|              | 
+----- which you try to store into List<Something> <-----+ 
あなたは別の List<Something>を作成する必要が

、またはタイプを変更しますpomIEnumerable<Something>

ここでは

は、問題を示して短いプログラムである:ここでは

var pom = new[] { "a", "b", "c" }.ToList(); 
pom = pom.Concat(new[] { "x", "y", "z" }); // CS0266 - cannot implicitly ... 

は、それが書かれるべきかです:

var pom = new[] { "a", "b", "c" }.ToList(); 
pom = pom.Concat(new[] { "x", "y", "z" }).ToList(); 
関連する問題