Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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
C# String.Contains int?_C#_Asp.net_String_Int - Fatal编程技术网

C# String.Contains int?

C# String.Contains int?,c#,asp.net,string,int,C#,Asp.net,String,Int,我想知道如何编写这部分代码 我想说的是,如果我的文件夹的名称包含R+,无论int是什么(R1、R52等),那么我会执行一个操作 这就是我尝试使用的: if(f.Name.Contains("R" + int)) { } 使用int的字符串表示形式 if(f.Name.Contains("R" + i.ToString())) { } 还是要匹配任何整数?你必须为此运行正则表达式。可能只是“R\d+”作为表达式。尝试使用正则表达式: if(Regex.IsMatch(f.Name,

我想知道如何编写这部分代码

我想说的是,如果我的文件夹的名称包含R+,无论int是什么(R1、R52等),那么我会执行一个操作

这就是我尝试使用的:

 if(f.Name.Contains("R" + int))
 {

 }

使用int的字符串表示形式

if(f.Name.Contains("R" + i.ToString()))
{

}
还是要匹配任何整数?你必须为此运行正则表达式。可能只是“R\d+”作为表达式。

尝试使用正则表达式:

if(Regex.IsMatch(f.Name, "R[0-9]"))
{
   // This will only execute if the String starts with R
   // and is followed by 1 or more numbers
}
这个怎么样

if(r.Name.StartsWith("R"))
{

}
这是一个休息的好时机


或者您可以使用交换机:

string caseSwitch = f.Name;
switch (caseSwitch)
{
    case "R1": 
        Console.WriteLine("Case R1");
        break;
    case "R2":
        Console.WriteLine("Case R2");
        break;
    default:
        Console.WriteLine("Default case");
        break;
}

int是一种类型,而不是一种格式。。您可以使用正则表达式,也可以检查第二个字符是否是数字类型?
i
现在是先验的,它是一个任意数字。
ToString()
不是必需的。我将其读取为与从以前代码中检索到的特定int匹配。也许我错了。@Alexander:对,有点模棱两可。我指的是“无论什么整数”,但这一点都不清楚。@CodeInChaos没有,但也没有错。我希望在回答那些似乎对语法掌握不太好的人提出的问题时更加明确。实际上不需要
+
。@Msonic-不需要,上面的正则表达式说“这包含一个R,后面紧跟一个数字”,如果\d不“包含”,而不是“以开头”,则没有条件\d+会成功. 另外,
R
后面的字符必须是数字。这是一个非常糟糕的主意,它没有可伸缩性。他还需要一个“Contains”操作,而不是StartWith。我想看看可伸缩到
R52
的版本,如问题中所述:)这是WTF的一个很好的例子。顺便说一句,对于不同的数字,没有任何迹象表明所采取的行动应该是不同的,相反……“包含”,而不是“以开头”。这与提供的第一个答案几乎相同。
string caseSwitch = f.Name;
switch (caseSwitch)
{
    case "R1": 
        Console.WriteLine("Case R1");
        break;
    case "R2":
        Console.WriteLine("Case R2");
        break;
    default:
        Console.WriteLine("Default case");
        break;
}
if (f.Name.Contains ("R" + Convert.ToString(i)))
{
    // Your code here
}