我的Linq-fu不足以将以下内容翻译为希望的一行或两行。Linq - 如何将此代码转换为linq
var errors = new List<string>();
foreach (var key in ModelState.Keys)
{
errors.Add(ModelState[key].Errors.FirstOrDefault().ErrorMessage);
}
return Json(new { success = false, errors = errors });
有没有在'OrDefault'没有意义;反正它会失败。 – SLaks 2011-04-12 16:52:58
如果您遇到“LINQifying”这个问题,那么您需要了解更多LINQ。我建议你阅读[Edulinq](http://msmvps.com/blogs/jon_skeet/archive/tags/Edulinq/default.aspx)文章。此外,就像SLaks说的那样,FirstOrDefault比First更糟糕,因为'First'失败时会产生一个有意义的异常,但是如果使用FirstOrDefault,则会失败并返回NullReferenceException。 – 2011-04-12 16:54:06
@Martinho:够公平的......但要公平一点,这就是Scott Hanselmann发布这个代码的方式,我只是试图改进它... http://haacked.com/archive/2010/04/15 /sending-json-to-an-asp-net-mvc-action-method-argument.aspx。我们不可能都是专家......我相信我可以围绕你的其他技能组合运行圈子:) – 2011-04-12 17:03:10