Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包含用于比较C#中字符串数组的方法

包含用于比较C#中字符串数组的方法
EN

Stack Overflow用户
提问于 2013-08-14 07:10:00
回答 3查看 7.8K关注 0票数 4

我想用LINQ比较一个sting字段和一个string数组,我编写了下面的扩展方法来进行比较,但是它不能正确地工作。

代码语言:javascript
运行
AI代码解释
复制
 public static bool Contains(this string source, string[] keys)
    {
        foreach (var item in keys)
        {
            if (source.Contains(item))
                return true;
        }

        return false;
    }

这是我的疑问:

代码语言:javascript
运行
AI代码解释
复制
string[] keys = key.Split('+');
        var pages = context.Pages.Where(x => x.Title.Contains(keys));

我发现的错误是:

LINQ不识别方法'Boolean (System.String,System.String[])‘方法,并且该方法不能被转换为存储表达式。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-14 07:17:06

您不能像这样在LINQ中使用您自己的自定义方法--但是您可以使用普通的LINQ运算符重写它:

代码语言:javascript
运行
AI代码解释
复制
string[] keys = key.Split('+');
var pages = context.Pages.Where(x => keys.Any(key => x.Title.Contains(key)));

如果这不起作用,我怀疑这在EF中基本上是不可行的。

票数 7
EN

Stack Overflow用户

发布于 2013-08-14 07:37:42

您在Where中编写的lambda表达式实际上是由EF计算并转换为SQL的。例如,当你写

代码语言:javascript
运行
AI代码解释
复制
db.Pages.Where(x => x.Title == "Hello")

EF知道如何将结果的IQueryable<T>转换为如下所示:

代码语言:javascript
运行
AI代码解释
复制
SELECT ... FROM Pages WHERE title = 'Hello'

类似地,它了解一些常见的方法和操作符,例如:

代码语言:javascript
运行
AI代码解释
复制
db.Pages.Where(x => x.Contains("Hello"))

EF知道如何将String.Contains转换为:

代码语言:javascript
运行
AI代码解释
复制
SELECT ... FROM Pages WHERE title LIKE '%Hello%'

但是,当您在表达式中使用自己的自定义方法时,EF不知道如何将该自定义方法转换为SQL,这正是它在您看到的错误消息中所抱怨的。

票数 4
EN

Stack Overflow用户

发布于 2013-08-14 07:44:22

LINQ不识别方法'Boolean (System.String,System.String[])‘方法,并且该方法不能被转换为存储表达式。

看到您的代码正在被转换为SQL,如果我没有错,您的错误说明的布尔包含(System.String,此方法不能被翻译,这意味着这个特定的部分无法转换为SQL,如果您将字符串转换为BIT,它可能会工作。如果有人认为我可能在错误的方向,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18235472

复制
相关文章
你知道如何安全正确的关闭线程池吗?
我们知道应用停机时需要释放资源,关闭连接,而对于一些定时任务或者网络请求服务会使用线程池,当应用停机时我们需要正确安全的关闭线程池,如果处理不当,可能造成数据丢失,业务请求结果不正确等问题。
纯洁的微笑
2019/10/18
5.6K0
你知道如何安全正确的关闭线程池吗?
有人知道如何提取matlab符号表达式系数吗?
调用方法:[C,T] = coeffs(___),C为返回的系数,T为对应多项式项
巴山学长
2019/12/27
4.8K0
21 - JavaScript 中少有人知道的技巧
原文链接:https://dev.to/bhagatparwinder/lesser-known-javascript-tricks-kjj
前端黑板报
2022/12/01
2220
你知道在iOS开发的工作中为什么有人4k有人40k吗?
  如果你有志于将iOS开发作为职业,或者已经是一位iOS开发者,那么你应该听说过唐巧的名字。唐巧,2012年从网易有道离开参与创业, 目前是猿题库iOS高级研发工程师。难得的是,他本身是一线的iOS开发者,同时又对iOS开发在国内的布道做了不少的工作,身影活跃于博客、微博、微信公众账号等地。从2011年以来,唐巧开始在博客分享自己写的iOS开发技术文章,CocoaChina 也曾多次转载过他的博客文章,后来他成为InfoQ兼职编辑,除了发表技术文章之外,还负责整理《iOS移动开发周报》,至今已有35期,他的微博和微信公众账号粉丝都超过1万,可以说是iOS开发领域的“大V”。并且他的新书《iOS开发进阶》已经和大家见面,也引得他的粉丝的一份热潮
Kris大鲨
2018/05/11
2.8K3
你知道在iOS开发的工作中为什么有人4k有人40k吗?
你知道Spring中BeanFactoryPostProcessors是如何执行的吗?
了解了BeanDefinition以及生命周期的大概概念之后,我们可以试着看一下源码!我们上一章也说到,BeanFactoryPostProcessors的执行时机是:在扫描完成之后,实例化之前!那么我们看一下Spring是如何去回调BeanFactoryPostProcessors的呢?
止术
2020/09/15
9650
你知道Spring中BeanFactoryPostProcessors是如何执行的吗?
如何关闭笔记本小键盘_笔记本电脑怎么关键盘灯光
您使用下面两个方法,都可以用来关闭触摸板:(1)请您“双击”触摸板左上角位置的小圆点,当指示灯为橙色时,表示触摸板关闭。(2)或者,请您点击开始—控制面板—鼠标—装置设…
全栈程序员站长
2022/11/05
2.5K0
如何关闭笔记本小键盘_笔记本电脑怎么关键盘灯光
如何使用NoNotifications关闭Ubuntu通知提示
在 Ubuntu 中连接个手机,连通有线或无线网络、有新系统更新时都会在桌面右侧弹出通知提示,这个功能本可以帮助用户实时了解系统和硬件工作状态的动态变化,但当你需要长时间专注工作时,这些可能会随机弹出的通知提示经常都会打断我们的工作和思路。如果你使用了 KDE Connect,各种消息更可能让你抓狂。
用户8710806
2021/06/09
2.1K0
你知道在springboot中如何使用WebSocket吗
  我们都知道 http 协议只能浏览器单方面向服务器发起请求获得响应,服务器不能主动向浏览器推送消息。想要实现浏览器的主动推送有两种主流实现方式:
用户2038589
2019/05/24
2.9K0
你知道关闭页面时怎么向后台发送消息吗?
这两天碰到一个需求:在用户刷新页面或者关闭页面的时候,前端要给后台发一条请求,释放该页面的授权占用。
编程三昧
2021/08/16
1K0
你知道关闭页面时怎么向后台发送消息吗?
开源组件清单 有人知道这个可以去哪里获取清单吗?
前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个ChatGPT数据提取的问题,一起来看看吧。
Python进阶者
2023/11/13
2150
开源组件清单  有人知道这个可以去哪里获取清单吗?
ubuntu关闭时间同步
虽然System clock synchronized: no,但是时间仍然在同步。因为还要重启一下服务。这一步特别重要。
超级大猪
2019/11/22
6.1K0
MyEclipse中如何隐藏关闭的项目?
问题描述:   我们有很多已经关闭的项目,不想让它显示,该如何办呢?如下图所示: 操作步骤: 效果如下:
黑泽君
2018/10/11
1.4K0
MyEclipse中如何隐藏关闭的项目?
小米笔记本怎么关闭secure boot
2、进入电源选项设置后,点击”更改当前不可用的设置”,再把”启用快速启动(推荐)”前边的勾去掉 (若没有该选择则不需要操作,直接略过进行第二步)。
周小董
2019/03/25
3K0
你知道 Java 中的隐藏类吗?
前几天给大家介绍了Java 17中新推出的密封类,今天继续给大家介绍一个Java 15开始推出的一个新内容:隐藏类。 如果你喜欢做封装、做框架的话,这个内容可能对你很有用哦! 什么是隐藏类 隐藏类,是一种不能被其他类直接使用的类。引入隐藏类的主要目的是给框架来使用,使得框架可以在运行时生成类,并通过反射间接使用它们。 可能有点抽象,不要紧,下面我们通过一个例子来直观的认识它! 如果你关注Java前沿知识,记得关注公众号:程序猿DD,持续分享前沿技术内容,积累普通技术人的弯道超车资本! 隐藏类案例 第一步:
程序猿DD
2022/05/09
7200
你知道Hive中的中位数吗
关于求解中位数,我们知道在Python中直接有中位数处理函数(mean),比如在Python中求解一个中位数,代码很简单。
数据社
2020/05/25
2K0
笔记本Ubuntu系统 开启Wifi
而目前的UBUNTU系统装机自带的无线网卡驱动大部分都是适用于博通公司(boardcom)
JNingWei
2018/09/28
2K0
联想计算机的功能键,联想fn键怎么用 联想fn组合按键功能介绍【图文】「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。 Fn键是每个笔记本上都拥有的按键,熟悉电脑的朋友都知道,笔记本为了考虑到超薄便携的特性,因此显示器上并没有像台式机那样的控制按钮,因此使用按钮调节笔记本显示器
全栈程序员站长
2022/07/29
3.2K0
Ubuntu笔记本黑屏不休眠
但是发现一旦笔记本电脑黑屏之后代理就失效了,而且ssh链接不上,然后一查发现ubuntu黑屏会直接休眠。
小N同学
2022/05/12
1.2K0
Ubuntu笔记本黑屏不休眠
加速ubuntu开机速度
http://forum.ubuntu.org.cn/viewtopic.php?t=7505 原作者i3dmaster 译者yang119345 加速Ubuntu开机过程 此HowTo 适合抱
全栈程序员站长
2021/05/19
1.6K0
关闭Ubuntu提示欢迎语
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64) * Documentation: https://help.ubuntu.com/ System information as of Fri Sep 23 09:31:54 CST 2016 System load: 0.3 Processes: 254 Usage of /: 2.3% of 114.
苦咖啡
2018/04/28
2.3K0

相似问题

有人知道DimScreen (亮度)用于ubuntu吗?

10

有人知道Ubuntu12.04中的OpenGL应用吗?

10

有人知道Ubuntu中的笔记和笔记本的替代品或本地应用程序吗?

20

有人知道如何改变火狐图标吗?

30

有人知道如何直播从树莓pi B+到ubuntu的高清视频吗?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档