c#数组.找到搜索

本文关键字:搜索 数组 | 更新日期: 2023-09-27 18:19:16

我想从数组中搜索。这是我的代码

string[] Main_Events = { "Five Ships In The Harbour", "Australia Day", "Christmas", "New Years", "The Melbourne Cup", "Australian Open Tennis" };
string search_str = "Australia Day";
string value1 = Array.Find(Main_Events, element => element.Contains(search_str));

如果我搜索Australia Day,但如果搜索The Australia Day,搜索工作正常。value1的值为null

如果搜索值是The Australia Day,在数组中值是Australia Day,那么value1的值应该是Australia Day or true.

我使用Array.Find,因为我想从5个不同的数组搜索。和Main_Events一样,我还有另外四个数组。

Thanks in advance

c#数组.找到搜索

尝试在search_str中搜索element:

string value1 = Array.Find(Main_Events, element => element.Contains(search_str) || search_str.Contains(element));

如果您需要数组节点值等于给定字符串的子字符串,那么您可以将搜索更改为:

var value1 = Array.Find(mainEvents, element => searchStr.Contains(element));

您可以相应地更改为不区分大小写的比较(通过转换为大写)。

string[] Main_Events = { "Five Ships In The Harbour", "Australia Day", "Christmas", "New Years", "The Melbourne Cup", "Australian Open Tennis" };
string search_str = "The Australia Day";
List<string> search_strs = search_str.Split(null).Where(s => s != string.Empty).ToList();
if (search_strs.Count > 0)
{                  
    List<string> searchResult = Main_Events.Where(x => search_strs.Any(keyword => (x).Contains(keyword))).ToList();                                                                   
}