gpt4 book ai didi

string - 如何在 C# 中覆盖 String 类中的函数

转载 作者:行者123 更新时间:2023-12-04 16:25:12 25 4
gpt4 key购买 nike

例如,我需要查看一个字符串是否包含一个子字符串,所以我只是这样做:

String helloworld = "Hello World";
if(helloworld.Contains("ello"){
//do something
}

但如果我有一系列元素
String helloworld = "Hello World";
String items = { "He", "el", "lo" };

我需要在 String 类中创建一个函数,如果有任何一个,它将返回 true
例如,数组中的项目包含在字符串中。

对于这种情况,我想用 Contains(IEnumerable) 覆盖函数 Contains(string),而不是在另一个类中创建函数。是否可以这样做,如果可以,我们如何覆盖该功能?非常感谢。

所以这里有完整的解决方案(谢谢大家):
public static bool ContainsAny(this string thisString, params string[] str) {
return str.Any(a => thisString.Contains(a));
}

最佳答案

你不能覆盖这个函数,但是你可以创建一个 extension method为了这:

public static class StringExtensions {
public static bool ContainsAny(this string theString, IEnumerable<string> items)
{
// Add your logic
}
}

如果您引用程序集并包含命名空间,您就可以像字符串上的普通方法一样调用它:
String helloworld = "Hello World";
String[] items = new string[] { "He", "el", "lo" };

if (helloworld.ContainsAny(items)) {
// Do something
}

(当然,您可以将其称为“包含”,就像标准字符串方法一样,但我更愿意给它一个更明确的名称,以便您检查的内容一目了然......)

关于string - 如何在 C# 中覆盖 String 类中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3137338/

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