C#Array.Find搜索

时间:2015-10-26 03:55:45

标签: c# .net arrays

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

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一样,我还有其他四个数组。

提前致谢

3 个答案:

答案 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();                                                                   
}