草庐IT

StringComparison

全部标签

c# - LINQ to Entities 无法识别方法 'Int32 IndexOf(System.String, System.StringComparison)' 方法

我已经使用Entityframework执行了一个linq查询,如下所示GroupMastergetGroup=null;getGroup=DataContext.Groups.FirstOrDefault(item=>keyword.IndexOf(item.Keywords,StringComparison.OrdinalIgnoreCase)>=0&&item.IsEnabled)执行此方法时出现如下异常LINQtoEntitiesdoesnotrecognizethemethod'Int32IndexOf(System.String,System.StringCompariso

c# - StartsWith 应该只用于订购吗?

我正在阅读Microsoft的BestPracticesforUsingStringsinthe.NETFramework.它给出了以下示例作为对StringComparison.OrdinalIgnoreCase的介绍:publicstaticboolIsFileURI(stringpath){returnpath.StartsWith("FILE:",StringComparison.OrdinalIgnoreCase);}到目前为止,还不错。但它接着说:However,theprecedingexampleusestheString.StartsWith(String,Strin

c# - Linq 到实体 : using ToLower() on NText fields

我正在使用SQLServer2005,带有区分大小写的数据库..在搜索功能中,我需要创建一个带有“where”子句的LinqToEntities(L2E)查询,该子句使用这些规则将多个字符串与数据库中的数据进行比较:比较是一种“包含”模式,不是严格比较:因为在L2E中允许使用字符串的Contains()方法,所以很容易比较必须不区分大小写:我对两个元素都使用ToLower()来执行不区分大小写的比较。所有这一切都表现得非常好,但我遇到了以下异常:我的字段之一出现“参数数据类型ntext对于下层函数的参数1无效”。该字段似乎是一个NText字段,我无法对其执行ToLower()。我该怎么

c# - string.IndexOf OrdinalIgnoreCase 与 CurrentCultureIgnoreCase 的性能

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Stringcomparisonindotnetframework4我注意到我机器上的一个UI应用程序存在性能问题,该应用程序正在执行大量字符串比较以过滤大型列表。我将问题追溯到在对string.IndexOf的调用中使用OrdinalIgnoreCase。以下基准测试是在没有附加调试器的情况下在Release中运行的,它是一个在VS2010、Windows7中构建的4.0项目,我在这台机器上安装了4.5beta,我不确定这是否会影响它。1.190secondsforOrdinalIgnoreCase0.17

c# - .NET 如何比较两个代表文件名的字符串正确忽略大小写

鉴于(至少在NTFS上)Windows上的文件系统不区分大小写,我想将StringfileA与StringfileB进行比较:fileA.Equals(fileB,StringComparison.CurrentCultureIgnoreCase)然后问题就变成了我应该使用哪种文化,默认的当前(ui?)文化是否足够?我似乎找不到任何用于此目的的BCL方法。 最佳答案 根据BestPracticesforUsingStringsinthe.NETFramework,您应该使用StringComparison.OrdinalIgnore

Entity Framework Core 大小写敏感处理

 可以使用'StringComparison'吗?在数据库查询操作中,不可避免去考虑字母大小写的问题,比如要在Movie表中查找“X-Men”这部电影,为了不区分字母大小写,按照Linqtomemory的习惯,可能会写出如下代码:DbContext.DbSet  .Where(item=>string.Equals(item.Title,"X-Men",StringComparison.InvariantCultureIgnoreCase)但是上述代码执行会报错,提示 'StringComparison'参数不支持。InvalidOperationException:TheLINQexpres

c# - StringComparison.InvariantCultureIgnoreCase 去哪儿了?

我正在将C#代码移植到Windows应用商店应用程序。令我惊讶的是,以下代码不再有效:someString.Equals("someOtherString",StringComparison.InvariantCultureIgnoreCase)InvariantCulture和InvariantCultureIgnoreCase已从StringComparison中删除(*)。为什么?我该如何替换它?编辑:(*)严格来说,它没有被删除,它只是不可用Windows应用商店应用程序。结果是一样的:你不能使用它。 最佳答案 那些特定的选

c# - System.StringComparer 和 System.StringComparison 类之间的区别?

这两个类有什么区别?我使用了System.StringComparer.OrdinalIgnoreCase()和System.StringComparison.OrdinalIgnoreCase()并且都产生了相同的结果。它们有什么区别还是一样? 最佳答案 StringComparer是Class它实现了类似IComparer的比较接口(interface),IEqualityComparer,IComparer,这样它就可以用来比较两个字符串。StringComparison只是一个Enum你可以传递给某些方法来指示你想要哪种比较

c# - StringComparison 枚举的选项

我对StringComparisonEnumeration的选项感到困惑.我只想比较两个忽略大小写的字符串。谁能解释一下当前文化、不变文化和序数是什么意思?是否有大多数用例通用的选项?如果是,在什么情况下需要其他选项?作为引用,StringComparison枚举的选项如下:当前文化CurrentCultureIgnoreCase不变文化不变文化忽略大小写序数OrdinalIgnoreCase 最佳答案 如果您要比较两个字符串的相等性,那么区域性设置不会产生太大差异(尽管它会影响土耳其语,例如带有点和不带点的i's)。如果你正在对一