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
尝试在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();
}