我想从数组中搜索。这是我的代码
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
一样,我还有其他四个数组。
提前致谢
答案 0 :(得分:1)
尝试在element
中搜索search_str
:
string value1 = Array.Find(Main_Events, element => element.Contains(search_str) || search_str.Contains(element));
答案 1 :(得分:0)
如果您需要数组节点值等于或者给定字符串的子字符串,那么您可以将搜索更改为以下内容:
var value1 = Array.Find(mainEvents, element => searchStr.Contains(element));
您可以相应地更改以进行不区分大小写的比较(通过转换为大写)。
答案 2 :(得分:0)
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();
}