如果我有以下代码:
string x = "123";
string y = "abc";
if (stringVar.Contains(x))
{
return x;
}
else if (stringVar.Contains(y))
{
return y;
}
Run Code Online (Sandbox Code Playgroud)
哪里
string stringVar = "123abc";
Run Code Online (Sandbox Code Playgroud)
它会
return x;
Run Code Online (Sandbox Code Playgroud)
然而
stringVar = "abc123";
Run Code Online (Sandbox Code Playgroud)
也会
return x;
Run Code Online (Sandbox Code Playgroud)
有没有一种方法,而不是遵循if-else语句的预定义顺序,我可以让返回结果基于stringVar的顺序?
我想要的结果是:
stringVar = "123abc";
...
return x;
Run Code Online (Sandbox Code Playgroud)
而如果:
stringVar = "abc123";
...
return y;
Run Code Online (Sandbox Code Playgroud)
编辑:
这个例子是我当前问题的一个非常简单的例子,String.StartsWith()并不总是有效,因为我正在寻找的文本并不总是在stringVar的开头.另外,在我的实际问题中,单词之间没有明显的分隔符(即没有空格)要么难以分割stringVar.
如果我有一个字符串数组:
public string[] foo = {... , "ABC123", ...};
Run Code Online (Sandbox Code Playgroud)
和变量:
string bar = "ABC123DEF456";
Run Code Online (Sandbox Code Playgroud)
如何检查栏是否包含"ABC123"?
目前,我正在做:
if (Array.Exists(foo, element => element == bar))
Run Code Online (Sandbox Code Playgroud)
检查整个字符串是否存在于foo中,但我想知道foo中的元素是否是bar的子字符串.我该怎么做?可以使用.Contains吗?