检查 String.Contain 是否包含列表中的元素

Check if String.Contain contain element from list

我正在尝试做一些简单的事情来检查字符串是否包含列表中的元素。

 // if(Change.Any(x => x.Contains(pname)))
     if (pname.Contains(Change.Count.ToString())  )
        {
            print("ole");
             Health = System.Convert.ToInt32(changer);
             Health ++;
             changer = Health .ToString();
             pname = cName + changer;
        }

您需要使用:

Change.Any(x => pname.Contains(x));

检查 Change 列表中的任何元素 [x] 是否包含在字符串 pname

如果您的代码经常进行这种检查(对于 "cleaner" 读取),您可能对在字符串上使用扩展感兴趣,请参阅下面添加的代码 - 它测试扩展 class 对于做同样事情的字符串;但是您的生产代码会显示为 "MyString.HasAnyElementsOfList(MyListOfStrings)"。

只是一个想法,不是必需的 - 希望对您有所帮助!编码愉快! -达斯

[TestFixture]
public class UnitTest1
{
    [Test]
    public void StringFromListIsFoundInString()
    {
        var listOfString = new List<string>() {"test", "bigword", "sillyword"};
        var stringToSearch = "this is a test";

        Assert.That(stringToSearch.HasAnyElementsOfList(listOfString), Is.EqualTo(true));
    }        
}

public static class MyStringExtensions
{
    public static bool HasAnyElementsOfList(this string stringToSearch, List<string> listOfStrings)
    {
        return listOfStrings.Any(listString => stringToSearch.Contains(listString));
    }
}