我有一个Linq查询,返回一个IQueryable<ClassX>类型的对象。我想将此对象放入类类型ClassX的对象中,并得到一个错误:


  无法将类型'System.Linq.IQueryable<ClassX>'隐式转换为
  'ClassX'。存在显式转换(您是否缺少演员表?)


这就是我想要做的:
GetResult()返回IQueryable<ClassX>对象。

ClassX x = GetResult();


我已经尝试过像ClassX x = (ClassX)(GetResult());这样的转换-但它没有用。

最佳答案

您可能已经知道,您的LINQ查询返回IQueryable<ClassX>。这表示带有结果集的查询。它不代表结果本身中的对象,因此您不能像这样强制转换它。

如果您的方法将恰好返回一个ClassX对象,则可以使用.Single()从结果集中获取该对象:

ClassX x = GetResult().Single();


.SingleOrDefault()如果结果集可能为空:

ClassX x = GetResult().SingleOrDefault();

10-05 21:36