首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将“Unable ListIterator`1[Web.Model.Appointment]”类型的对象强制转换为“”Web.Model.Appointment“”类型

无法将“Unable ListIterator`1[Web.Model.Appointment]”类型的对象强制转换为“”Web.Model.Appointment“”类型
EN

Stack Overflow用户
提问于 2012-03-09 06:19:41
回答 3查看 16.6K关注 0票数 5

这是我的控制器中的代码片段

代码语言:javascript
复制
[HttpPost]
public ActionResult Cancel(string id,FormCollection collection)
{
   //This is how I would like to declare appt but I cannot seem to correctly pass id into this method
   //var appt = Application.Session.GetObjectFromOid<Appointment>(new ObjectId(id));

   //I am trying to do it this way instead but I get an error
   var appt = (Appointment)Application.Appointments.Where(a=>a.Id.Equals(collection["Id"]));
   .....
}

这是我得到的错误:无法将'WhereListIterator`1Web.Model.Appointment‘类型的对象强制转换为’Web.Model.Appoinement‘类型。

这是我的观点:

代码语言:javascript
复制
<input type="button" value="Save" onclick="updateCancel(); return false;" /><button>Save</button>

这是我的函数

代码语言:javascript
复制
 function updateCancel() {
    $('#cancel').ajaxSubmit({

    });
    }

那么为什么我会得到这个错误呢?或者,有没有一种方法可以将Model.Data.Id传递到我的函数中,这样我就可以只使用id?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-15 00:26:18

这就是我最终使用的,它起作用了。

代码语言:javascript
复制
var appt = Application.Session.GetObjectFromOid<Appointment>(new ObjectId(id));
票数 1
EN

Stack Overflow用户

发布于 2012-03-09 06:23:25

Where子句返回一个迭代器。选择您要使用的内容。也就是说,如果你只想要一个结果,你可以使用FirstOrDefault。您还可以使用索引,如[1]

代码语言:javascript
复制
var appt = (Appointment)Application.Appointments.Where
     (a=>a.Id.Equals(collection["Id"]))
     .FirstOrDefault();

请注意,当未找到项目时,FirstOrDefault将返回null,因此请务必检查结果值。

附言:你可能不需要你的演员在那里。如果没有(Appointment,由于标题中的错误,这应该可以正常工作,因为列表中的项是Appointment类型的。

票数 14
EN

Stack Overflow用户

发布于 2012-06-15 07:19:26

在使用LINQ运算符时,需要记住的一件事是,它们返回一个可以分配给IEnumerable的对象。

LINQ

  • 如果你想要一个单独的元素,要么你需要附加另一个运算符。Single和SingleOrDefault都返回单个结果。当有1个以上的匹配项时,这些操作符会抛出异常。
  • First和FirstOrDefault LINQ运算符也会返回单个元素,只是如果有1个以上的匹配项,就会抛出异常,它们只返回找到的第一个。

在这两种情况下,如果没有找到匹配项,"OrDefault“操作符将返回一个null,但其他两个操作符会抛出异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9625955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档