如何在C#3.0中的字符串数组中搜索特定的字符串
本文关键字:字符串 搜索 数组 C#3 | 更新日期: 2023-09-27 18:08:29
我试图在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;
我该如何在这个数组中搜索"五"?我知道我必须使用for循环,我只是不确定实际的代码。我必须找到确切的索引,所以我无法获得布尔值。
任何帮助都将不胜感激
Jamie
更新:这是我迄今为止非常不完整的代码:
for (array_number = 1; array_number < this_array.Length; array_number++)
{
//no idea what to put here :S
}
使用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());
下面是一些示例代码。这将找到匹配条目的第一个索引。
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;
}
}
你可以试试这个。。。
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((
由于这是家庭作业,我建议您熟悉String类中可用的方法:
字符串方法
MSDN是你的朋友。
for(int i=1;i<this_array.length;i++)
if(this_array[i]!=null)
if(this_array[i].indexOf("Five")>-1
return i;
这简直是c#代码——我可能犯了一些小错误。但你肯定可以自己做到这一点。此外,我认为可能还有更好的方法可以做到这一点。