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

时间:2011-09-14 12:57:47

标签: c# arrays search c#-3.0 for-loop

我正在尝试在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
}

5 个答案:

答案 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)

由于这是家庭作业,我建议你熟悉String类中可用的方法:

String Methods

MSDN是你的朋友。

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