我有一个方法:
public DzieckoAndOpiekunCollection GetChildAndOpiekunByFirstnameLastname(string firstname, string lastname)
{
DataTransfer.ChargeInSchoolEntities db = new DataTransfer.ChargeInSchoolEntities();
DzieckoAndOpiekunCollection result = new DzieckoAndOpiekunCollection();
if (firstname == null && lastname != null)
{
IList<DzieckoAndOpiekun> resultV = from p in db.Dziecko
where lastname == p.Nazwisko
**select** new DzieckoAndOpiekun(
p.Imie,
p.Nazwisko,
p.Opiekun.Imie,
p.Opiekun.Nazwisko)
;
result.AddRange(resultV);
}
return result;
}
和所选地点的错误:
错误1无法隐式转换类型'System.Linq.IQueryable&lt; WcfService1.DzieckoAndOpiekun&gt;'到'System.Collections.Generic.IList&lt; WcfService1.DzieckoAndOpiekun&gt;'。存在显式转换(您是否错过了演员?)
任何想法如何解决我的问题?
答案 0 :(得分:48)
要将IQuerable
或IEnumerable
转换为列表,您可以执行以下操作之一:
IQueryable<object> q = ...;
List<object> l = q.ToList();
或:
IQueryable<object> q = ...;
List<object> l = new List<object>(q);
答案 1 :(得分:10)
您可以将IList<DzieckoAndOpiekun> resultV
替换为var resultV
。
答案 2 :(得分:4)
如果您不想使用IQueryable对象,如果使用where子句,请务必包含.First()
。
答案 3 :(得分:3)
试试这个 - &gt;
new DzieckoAndOpiekun(
p.Imie,
p.Nazwisko,
p.Opiekun.Imie,
p.Opiekun.Nazwisko).ToList()
答案 4 :(得分:2)
在linq查询之后,您可以使用.ToList()方法将返回的IQueryable结果转换为IList,如下所示。
public DzieckoAndOpiekunCollection GetChildAndOpiekunByFirstnameLastname(string firstname, string lastname)
{
DataTransfer.ChargeInSchoolEntities db = new DataTransfer.ChargeInSchoolEntities();
DzieckoAndOpiekunCollection result = new DzieckoAndOpiekunCollection();
if (firstname == null && lastname != null)
{
IList<DzieckoAndOpiekun> resultV = from p in db.Dziecko
where lastname == p.Nazwisko
**select** new DzieckoAndOpiekun(
p.Imie,
p.Nazwisko,
p.Opiekun.Imie,
p.Opiekun.Nazwisko).ToList()
;
result.AddRange(resultV);
}
return result;
}
答案 5 :(得分:1)
我已经通过这种方式解决了我在db上的记录列表中的问题
require_once( 'wp-includes/wp-db.php' );
答案 6 :(得分:0)
SonarQube
报告了Return an empty collection instead of null.
,我对此问题的标题有疑问,例如转换。
我能够在使用return XYZ.ToList().AsQueryable();
的方法中仅使用IQueryable
来摆脱这两种情况:
public IQueryable<SomeType> MethodName (...) {
IQueryable<SomeType> XYZ;
...
return XYZ.ToList().AsQueryable();
}
希望如此对类似情况的人有帮助。