gpt4 book ai didi

c# - 不区分大小写 'Contains(string)'

转载 作者:IT王子 更新时间:2023-10-29 03:26:47 26 4
gpt4 key购买 nike

有没有办法让下面的返回为真?

string title = "ASTRINGTOTEST";
title.Contains("string");

似乎没有允许我设置区分大小写的重载。目前我将它们都大写,但这很愚蠢(我指的是大写和小写带来的 i18n 问题)。

更新

这个问题很古老,从那时起我就意识到,如果您想全面调查它,我会为一个非常庞大而困难的主题要求一个简单的答案。

对于大多数情况,在单语、英语代码库中 this答案就足够了。我怀疑是因为来这里的大多数人都属于这一类,所以这是最受欢迎的答案。

This然而,答案提出了一个固有的问题,即在我们知道两个文本是相同的文化并且我们知道该文化是什么之前,我们无法比较不区分大小写的文本。这可能是一个不太受欢迎的答案,但我认为它更正确,这就是我将其标记为这样的原因。

最佳答案

您可以使用 String.IndexOf Method并通过 StringComparison.OrdinalIgnoreCase作为要使用的搜索类型:

string title = "STRING";
bool contains = title.IndexOf("string", StringComparison.OrdinalIgnoreCase) >= 0;

更好的是为字符串定义一个新的扩展方法:

public static class StringExtensions
{
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source?.IndexOf(toCheck, comp) >= 0;
}
}

请注意,null propagation ?. 自 C# 6.0 (VS 2015) 起可用,供旧版本使用

if (source == null) return false;
return source.IndexOf(toCheck, comp) >= 0;

用法:

string title = "STRING";
bool contains = title.Contains("string", StringComparison.OrdinalIgnoreCase);

关于c# - 不区分大小写 'Contains(string)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/444798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com