c# – LINQ to SQL中的字符串比较结果为null
发布时间:2020-12-15 20:54:13 所属栏目:百科 来源:网络整理
导读:我有两个字符串数组,想看看是否有任何交集.我在c#中使用 linq到sql并获取数据库字段并将其与用户输入进行比较,如下所示: string[] Materials = material.Split('-');AllItems = (from item in AllItems where item.Material.Split(',').Intersect(Materials
我有两个字符串数组,想看看是否有任何交集.我在c#中使用
linq到sql并获取数据库字段并将其与用户输入进行比较,如下所示:
string[] Materials = material.Split('-'); AllItems = (from item in AllItems where item.Material.Split(',').Intersect(Materials).Count() != 0 select item).ToList(); 材料是用户输入字符串,它具有 – 分隔符,在数据库中我有字符串,分隔符. 我想知道为什么结果总是为空.我的意思是查询结果说没有交集,但我检查并且有. 我使用的另一个替代查询并获得相同的结果是: string[] Materials = material.Split('-'); HashSet<string> stringSet = new HashSet<string>(Materials); AllItems = (from item in AllItems where item.Color.Split(',').Where(c => stringSet.Contains(c)).Count() != 0 select item).ToList(); 我很困惑这些查询的问题.我应该提一下,字符串是UTF8,并且在波斯语中包含2个字节的字符,我想也许这是问题,但我不知道如何解决它. 有什么解决方案吗? 更新(AllItems和示例): List<Item> AllItems = (from item in db.Items select item).ToList(); >材料示例=> “???-????-???” 更新(本地测试): 我在一些本地字符串中测试相同的linq并使用linq对象,答案是正确的!但是在linq到sql和服务器字符串中它始终说没有找到!有什么问题? 解决方法
我发现,其中一个Item的Color属性为null并导致异常并返回null.所以我在分割之前添加一个检查不是null,它可以工作.
谢谢你们所有人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ajax封装
- 【深入了解cocos2d-x 3.x】UI树(2)——UI树的内存管理机制
- postgresql insert 出现duplicate key value violates uniq
- [学习笔记]XML解析之JAXP
- oracle pl / sql结果成一个字符串
- 安装oracle11g INS-30131执行安装程序验证所需的初始设置失
- ios – 为什么我的CLLocationManager没有响应startMonitori
- objective-c – 如何关闭OSX窗口?
- 如何将字符串日期转换为oracle10g中的日期格式
- reactjs – react-router-dom:从组件中获取props.location