string[]查看它是否包含元素的最佳方法是什么.这是我的第一枪.但也许我有一些东西可以忽略.数组大小不超过200个元素.
bool isStringInArray(string[] strArray, string key)
{
for (int i = 0; i <= strArray.Length - 1; i++)
if (strArray[i] == key)
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*kle 194
只需使用已经内置的Contains()方法:
using System.Linq;
//...
string[] array = { "foo", "bar" };
if (array.Contains("foo")) {
//...
}
Run Code Online (Sandbox Code Playgroud)
Gab*_*ams 24
我知道这已经过时了,但我希望新读者知道有一种新的方法可以使用泛型和扩展方法来实现这一点.
你可以阅读我的博客文章,看看有关如何做到这一点的更多信息,但主要的想法是:
通过在代码中添加此扩展方法:
public static bool IsIn<T>(this T source, params T[] values)
{
return values.Contains(source);
}
Run Code Online (Sandbox Code Playgroud)
你可以像这样执行搜索:
string myStr = "str3";
bool found = myStr.IsIn("str1", "str2", "str3", "str4");
Run Code Online (Sandbox Code Playgroud)
它适用于任何类型(只要你创建一个好的equals方法).任何值类型肯定.
Nol*_*rin 12
您只需使用Array.Exists函数(如果您使用的是.NET 3.5,则包含扩展方法,这稍微更方便).
小智 6
Linq(s&g's):
var test = "This is the string I'm looking for";
var found = strArray.Any(x=>x == test);
Run Code Online (Sandbox Code Playgroud)
或者,根据要求
var found = strArray.Any(
x=>x.Equals(test, StringComparison.OrdinalIgnoreCase));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
150288 次 |
| 最近记录: |