有两种方式来实现,
第一种:Any()
第二种:FirstOrDefault()
这两种方式都会在找到第一个匹配的字符串后停止查找。
还可以设置在比较时候忽略大小写,targetString.Equals(id, StringComparison.OrdinalIgnoreCase);
如果没有找到匹配字符,也可以抛出异常。使用 string.join() 把待选字符串数组中的所有字符串组合成一个字符串输出。
using System;
using System.Linq;
namespace Any
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
string[] testString = new string[] { "abc", "BCa", "cBA", "edc" };
string targetString = "EDC";
//bool hasTargetString = testString.Any((id) =>
//{
// Console.WriteLine(id);
// return string.Compare(id, targetString) == 0;
//});
bool hasTargetString = testString.Any((id) =>
{
Console.WriteLine(id);
return targetString.Equals(id, StringComparison.OrdinalIgnoreCase);
});
if (!hasTargetString)
{
Console.WriteLine("can't find the target string");
}
Console.WriteLine("====================================");
string matchString = testString.FirstOrDefault((id) =>
{
Console.WriteLine(id);
return string.Compare(id, targetString) == 0;
});
if (matchString == null)
{
Console.WriteLine("can't find the target string");
throw new Exception(string.Join(',', testString));
}
}
}
}



