Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何在C中重写字符串类中的函数#_String_C# 4.0_Extension Methods_Sealed_Overloading - Fatal编程技术网

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
}