- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我是 C# 和 MVC 的新手,在某些情况下使用过 lambda,例如匿名方法和 LINQ。
通常我看到的 lambda 表达式看起来像这样:
(x => x.Name), (x => { Console.WriteLine(x))
我知道 lambda =“去”。我从未见过不使用左参数的 lambda 表达式。
虽然我不知道如何翻译这个 lambda 表达式
@Html.DisplayFor(modelItem => item.FirstName)
任何人都可以为我阐明这一点吗?这不应该是
(modelItem => modelItem.FirstName)?
我从微软的 Introduction to ASP.NET MVC tutorial 得到这个.
最佳答案
lambda 表达式是一种编写匿名函数的方法,即没有名称的函数。 “箭头”左侧是函数参数,右侧是函数体。因此,(x => x.Name)
在逻辑上转换为类似 string Function(Data x) { return x.Name }
类型的 string
和 Data
显然会有所不同并从上下文中派生。
缺少左侧参数转换为无参数函数,因此此 (() => someVariable)
在逻辑上转换为:string Function() { return someVariable ; }
此时你可能会开始怀疑,someVariable
是从哪里来的,它不是函数参数,也没有在函数中定义。你是对的,像这样的函数永远不会编译。然而,像这样的 lambda 函数非常好,因为它允许以这种方式提升和使用外部作用域变量。 (在内部创建一个包装类,其中 lambda 表达式中使用的变量成为字段。)
现在让我们看看 model => item.FirstName
是什么意思。从逻辑上讲,它将转换为 string Function(Model model) { return item.FirstName; }
。基本上这是一个带参数的函数,但是这个参数并没有被使用。
现在,最后一点信息。尽管 lambda 表达式最终表示函数,但有时创建它们并不是为了实际执行(尽管它们可能会执行)。 lambda 表达式可以用表达式树的形式表示。这意味着可以解析而不是执行它。
在这种特殊情况下,MVC 引擎不会运行 lambda 表达式表示的函数。相反,表达式被解析,以便 MVC 引擎知道要为该特定行发出什么 html。如果您的数据项不是直接来自您的模型对象,则 lambda 表达式的左侧部分无关紧要。
关于c# - 我想了解 @Html.DisplayFor(modelItem => item.FirstName) 中的 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10097995/
我有两个单独收集的同一组学生的姓名列表。有许多打印错误,我一直在使用模糊匹配来链接这两个列表。我 99+% 有 agrep和类似的,但我坚持以下基本问题:我如何匹配(例如)名字“Adrian Bruc
我有一个名字列表,我需要将这些名字从“名字姓氏”转换为“姓氏,名字”。 Barack Obama Donald J. Trump J. Edgar Hoover Beyonce Knowles-Car
我有一栏写满了名字: “姓氏,名字” 我想要另一列,该姓名列表写为: “名字 姓氏” 那么,如何将字符串从“lastName,firstName”切换为“firstName LastName”? 最佳
我正在尝试将包含某人姓名的字符串转换为“Last, First”到“First Last”。 这就是我现在的做法: name = name.Trim name = name.Substring(nam
我想将其更改为名字和姓氏的首字母。 谢谢! 最佳答案 NSString* nameStr = @"Firstname Lastname"; NSArray* firstLastStrings = [n
如何在 Postgres 中将表列数据从“LastName, FirstName”转换为“FirstName LastName”。 因此,如果表列包含“Ona, Lisa”,我希望它返回“Lisa O
我有 python pandas 数据框,由用于执行 python 脚本的 power bi 数据源转换支持提供,其中一列由 lastname, firstname 组成,我需要它由 名字姓氏。 我尝
我有 python pandas 数据框,由用于执行 python 脚本的 power bi 数据源转换支持提供,其中一列由 lastname, firstname 组成,我需要它由 名字姓氏。 我尝
我正在处理我的作业,我几乎完成了代码。我只是需要有关独特设计的帮助。 我有 3 个带有一些文本的按钮。对于全屏,文本是 "HelloWorld"、"LastFirst",但是当在移动设备上看到相同的网
我正在开发一个网页,该网页将在我的数据库中显示用户的信息。首先,我编写了一些代码来从数据库中获取名字并对其进行回显。我最初测试的用户的每个字段(用户名、名字、姓氏、密码)都填写为 "1" .为了进一步
我有一段代码,根据您使用的内部函数返回名字和姓氏或名字和中间名。但是,当使用 this 关键字时,当我访问姓氏或中间名内部函数时,名字返回未定义。如果我不使用“this”,那么名字就可以正常返回。我不
我知道我为什么会收到错误,但我不知道代码是什么 我得到的错误是 must declare the scalar variable "@OTitle@FirstName" 我的方法看起来像这样.. cm
想知道在允许通过非唯一自然名称提及其他用户的数据库 (sql) 中存储评论的最佳方式是什么? 例如This is a comment for @John. 如果点击他/她的名字,客户端应用程序还需要检
该问题已在其他地方问过,但没有回答。 谷歌浏览器认为我的输入 是一张信用卡,如自动完成字段检查器(实验标志 thingy)和提供已保存信用卡的自动完成所示。 它也在 lastName 字段和另一个数
@{DisplayName=Firstname Lastname} 需要只是 'Firstname Lastname' 因为 get-mailbox -identity '@{DisplayName=
将字符串“Parisi, Kenneth”分成“Kenneth”和“Parisi”的最佳方法是什么? 我仍在学习如何使用这些正则表达式解析字符串,但不太熟悉如何将 vars 设置为等于匹配的字符串和匹
我四处搜寻,但找不到任何帮助。 我正在尝试创建一个用户,但有 2 个字段始终为空(名字和部门)。 GUI (html): Firstname:
在我正在使用的表格中,full_name 列的格式为“Firstname Lastname” 例如。 “约翰·韦斯特” 我正在使用这个: $q="John"; $sql = "SELECT full_
我遍历一长串名字,我将每个名字分配给一个“人”对象。 Person 对象有一个 firstName 和一个 lastName。我正在寻找一种有效的方法来对从字母 A 到 Z 开头的所有 firstNa
我不想太严格,因为一个可能的名字中可能有数千个可能的字符 普通英文字母、重音字母、非英文字母、数字(??)、常用标点符号 例如 D'souza D'Anza M.D. Shah (dots and s
我是一名优秀的程序员,十分优秀!