String 如何在C中重写字符串类中的函数#
例如,我需要查看字符串是否包含子字符串,因此我只需执行以下操作:String 如何在C中重写字符串类中的函数#,string,c#-4.0,extension-methods,sealed,overloading,String,C# 4.0,Extension Methods,Sealed,Overloading,例如,我需要查看字符串是否包含子字符串,因此我只需执行以下操作: String helloworld = "Hello World"; if(helloworld.Contains("ello"){ //do something } 但是如果我有一系列的项目 String helloworld = "Hello World"; String items = { "He", "el", "lo" }; 我需要在String类中创建一个函数,如果 例如,数组中的项包含在字符串中 对于这种
String helloworld = "Hello World";
if(helloworld.Contains("ello"){
//do something
}
但是如果我有一系列的项目
String helloworld = "Hello World";
String items = { "He", "el", "lo" };
我需要在String类中创建一个函数,如果
例如,数组中的项包含在字符串中
对于这种情况,我想用Contains(IEnumerable)覆盖函数Contains(string),而不是在另一个类中创建函数。是否可以这样做?如果可以,我们如何重写该函数?多谢各位
下面是完整的解决方案(谢谢大家):
您不能重写该函数,但可以对此进行以下操作:
public static class StringExtensions {
public static bool ContainsAny(this string theString, IEnumerable<string> items)
{
// Add your logic
}
}
(当然,您可以像标准字符串方法一样将其称为“Contains”,但我更愿意给它一个更明确的名称,这样就可以清楚地看到您正在检查的内容……为什么不保持简单并使用
如果我们只做if(string.Contains(items)),它会更简单。。。但我可能会在函数中使用您的代码。谢谢,非常感谢。这就是我所需要的。@Jronny:是的,这是我的帖子中的一个打字错误。谢谢你指出这一点(我现在已经更正了)。如果答案是“你所需要的”,那么接受它是一种很好的做法@塞萨尔:我一直在等他纠正打字错误。谢谢
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 helloworld = "Hello World";
string[] items = { "He", "el", "lo" };
if (items.Any(item => helloworld.Contains(item)))
{
// do something
}