从数组和引用数组编号中搜索字符串

本文关键字:数组 搜索 字符串 引用 编号 | 更新日期: 2023-09-27 18:14:57

我是C#的新手,我正在尝试搜索一个字符串,看看它是否包含字符串数组的成员。如果字符串确实包含数组中的某些内容,那么我想记录它找到的数组成员的索引号,然后显示它

string stringToBeSearched = "I want to find item2 or item6";
string[] array = { "item1", "item2", "item3" };
// Search stringToBeSearched for anything in array, then enter the array 
// member's index value into int position
int position = //array index number of item found
Console.WriteLine("{0} was found.", array[position]);
Console.ReadLine();

从数组和引用数组编号中搜索字符串

您可以使用IndexOf将每个数组元素与stringToBeSearched进行比较。

string stringToBeSearched = "I want to find item2 or item6";
string[] array = {"item1", "item2", "item3"};
int position;
for (int i = 0; i < array.Length; i++) {
    string str = array[i];
    if (stringToBeSearched.IndexOf(str) >= 0) {
        position = i;
        Console.WriteLine("{0} was found.", str);
        Console.ReadLine();
    }
}
// Result: 
// item2 was found.

一种使用Linq和泛型的方法

using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
    public static void Main(String[] args)
    {
       string[] array1 = "I want to find item2 or item6".Split(' ');
       string[] array2 = {"item1", "item2", "item6"};
       IEnumerable<string> results = array1.Intersect(array2,
                                                     StringComparer.OrdinalIgnoreCase);
       foreach (string s in results)
          Console.WriteLine("{0} was found at index {1}.", 
                            s, 
                            Array.IndexOf(array2, s));
    }
}
string stringToBeSearched = "I want to find item2 or item6";
string[] array = { "item1", "item2", "item3" };
string firstOrDefault = array.FirstOrDefault(stringToBeSearched.Contains);
int position = firstOrDefault == null
   ? -1
   : Array.IndexOf(array, firstOrDefault);
if (position >= 0)
   Console.WriteLine("{0} was found.", array[position]);
else
   Console.WriteLine("Did not find any of the strings.");
Console.ReadLine();

请注意,这将找到第一个匹配的字符串。如果有不止一个你不会知道其他的。