如何在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
}

如何在C#3.0中的字符串数组中搜索特定的字符串

使用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#代码——我可能犯了一些小错误。但你肯定可以自己做到这一点。此外,我认为可能还有更好的方法可以做到这一点。