gpt4 book ai didi

c# - 无法将类型 System.Collections.Generic.IEnumerable 隐式转换为 System.Collections.Generic.List

转载 作者:太空宇宙 更新时间:2023-11-03 21:10:47 26 4
gpt4 key购买 nike

我只需要为每个订单获取一条记录,而且如果有广告,我需要连接到记录。但是当我使用 Concat我收到此错误。

Cannot implicitly convert type System.Collections.Generic.IEnumerable<x> to System.Collections.Generic.List<x>. An explicit conversion exists (are you missing a cast?)

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);

最佳答案

这里的问题是:

pom = pom.Concat(advirtise);
^ ^-------+------------^
| |
| +-----> returns IEnumerable<Something> -----+
| |
+----- which you try to store into List<Something> <-----+

您需要创建另一个 List<Something> ,或更改 pom 的类型至 IEnumerable<Something> :

pom = pom.Concat(advirtise).ToList();

这是一个演示问题的简短程序:

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();

关于c# - 无法将类型 System.Collections.Generic.IEnumerable 隐式转换为 System.Collections.Generic.List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37857207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com