我正在尝试在C#中搜索字符串数组中的字符串,但我不确定如何。 因此,如果数组有50个元素,其中大部分为null,我将如何搜索数组中的字符串? 例如:
string[] this_array;
this_array = new string[50];
this_array[1] = "One, Two, Three";
this_array[2] = "Foo, Bar, Five";
this_array[3] = null;
我将如何在this_array中搜索“Five”?我知道我必须使用for循环,我只是不确定实际的代码。我必须找到确切的索引,所以我无法获得布尔值。
非常感谢任何帮助! 杰米
更新: 到目前为止,这是我的非常不完整的代码:
for (array_number = 1; array_number < this_array.Length; array_number++)
{
//no idea what to put here :S
}
答案 0 :(得分:2)
使用Linq。这是最容易且不易出错的方式。
在顶部添加using语句:
using System.Linq;
并像这样搜索。
var result = this_array.Where(x => x != null && x.Contains("string to compare"));
if (result != null) System.Writeln(result.First());
答案 1 :(得分:1)
以下是一些示例代码。这将找到匹配条目的第一个索引。
int foundIndex = -1;
for(int i=0; i < this_array.Length; ++i)
{
if (!string.IsNullOrEmpty(this_array[i]) && this_array[i].Contains(searchString))
{
foundIndex = i;
break;
}
}
答案 2 :(得分:0)
你可以试试这个......
int index = -1;
string find = "Five";
for(int i = 0; i < this_array.Length; i++)
{
if(string.IsNullOrEmpty(this_array[i]))
continue;
if(this_array[i].ToLowerInvariant().Contains(find.ToLowerInvariant()))
{
index = i;
break;
}
}
注意:我的搜索不区分大小写。如果您关心字符的大小写,请删除.ToLowerInvariant()
的两个实例答案 3 :(得分:0)
答案 4 :(得分:-1)
for(int i=1;i<this_array.length;i++)
if(this_array[i]!=null)
if(this_array[i].indexOf("Five")>-1
return i;
这很可能是c#代码 - 我可能犯了一些小错误。但你肯定可以自己做到这一点。另外,我认为可能有更好的方法。