LINQ .Startswith或.Contains VB.NET4中的问题
发布时间:2020-12-17 07:30:04 所属栏目:百科 来源:网络整理
导读:这可能是一个新手问题…… 在我的代码中,我可以轻松地使用“where Obj.Feld = String”,但使用“where Obj.Feld.StartsWith(”a“)”不起作用.请参阅以下两个功能: Public Function EntriesByFileName(ByRef Database() As Entry,ByVal Filename As _ Strin
这可能是一个新手问题……
在我的代码中,我可以轻松地使用“where Obj.Feld = String”,但使用“where Obj.Feld.StartsWith(”a“)”不起作用.请参阅以下两个功能: Public Function EntriesByFileName(ByRef Database() As Entry,ByVal Filename As _ String) As IEnumerable(Of Entry) Dim Result As IEnumerable(Of Entry) = From EntryObject In Database _ Where (EntryObject.FileName = Filename) Select EntryObject Return Result End Function Public Function EntriesLikeFileName(ByRef Database() As Entry,ByVal _ Filename As String) As IEnumerable(Of Entry) Filename = Filename.ToLower Dim Result As IEnumerable(Of Entry) = From EntryObject In Database _ Where EntryObject.FileName.StartsWith("a") Select EntryObject Return Result End Function 第一个函数(byFileName)工作正常.第二个函数(LikeFileName)没有.使用Startswith我得到“对象引用未设置为对象的实例”.我究竟做错了什么? 数据库是一个对象数组,一个由字符串组成的结构 解决方法
EntryObject.FileName可以为NULL,因此EntryObject.FileName.StartsWith(..)可以抛出NullReferenceException.
将条件更改为首先检查NULL,例如 if EntryObject.FileName <> nothing AndAlso EntryObject.FileName.StartsWith(..) 使用AndAlso这里使用短路,这意味着如果第一个条件不满足,第二个条件将不会被评估,因此我们无法获得NullReferenceException. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 解析XML文件(二)----使用dom4j方式(三)
- jboss7搭载EJB3之简单会话BEAN与依赖注入jboss数据源
- Nand flash uboot 命令详解
- VB#中的c# – operator – Interlocked.Increment
- 最新flash player 11.4.402.278在Win7 + Firefox环境下无法
- 汉落塔算法实现代码
- FPGA学习(第2节)-FPGA下载程序到flash+文件转换-通过.sof
- objective-c – 使用Objective C将位图转换为PNG或JPG
- c# – 使用dateTimePicker在DataGridView中的可编辑日期
- git 控制台命令集