我有两个字符串数组,想看看是否有任何交集.我在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();
>材料示例=> “ابی-قرمز-زرد”
> Item.Material =>的示例“ابی,سبز”
更新(本地测试):
我在一些本地字符串中测试相同的linq并使用linq对象,答案是正确的!但是在linq到sql和服务器字符串中它始终说没有找到!有什么问题?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。