使用lambda表达式选择与字符串匹配的数组元素

时间:2017-05-17 06:18:41

标签: c# lambda

我正在尝试在数组中选择一个与字符串中的内容匹配的元素。

例如:

string[] splitChar = new string[] { "+=", "-=" };
string content = "5+=2";

所以我想检查内容是否包含来自splitChar的内容,如果是,则选择该值,以便将其分配给字符串变量。

2 个答案:

答案 0 :(得分:1)

您是否尝试使用以下FirstOrDefault进行检查?

string[] splitChar = new string[] { "+=", "-=" };
string content = "5+=2";        
var stringPresent = splitChar.FirstOrDefault(x=>content.Contains(x));
if(String.IsNullOrEmpty(stringPresent))
    Console.WriteLine("Not found");
else
Console.WriteLine(stringPresent);

选中此Example

答案 1 :(得分:1)

Lambdas和LINQ对此有点矫枉过正。你可以做一个简单的foreach

string match = "";
foreach (var str in splitChar)
{
    if (content.Contains(str)) 
    {
        match = str;
        break;
    }
}

if (!String.IsNullOrEmpty(match))
{
    // Do whatever with `match`
}

如果您真的想使用LINQ,FirstOrDefault将是您最好的选择:

string match = splitChar.FirstOrDefault(s => content.Contains(s));

if (!String.IsNullOrEmpty(match))
{
    // Do whatever with `match`
}