如果我有以下代码:
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.
首先,我建议将项目存储在集合中,例如:
string[] words = {"123","abc"};
Run Code Online (Sandbox Code Playgroud)
现在你可以使用string.IndexOf和LINQ:
return words
.Where(stringVar.Contains)
.OrderBy(stringVar.IndexOf)
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |