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

时间:2016-07-09 15:04:58

标签: c# unity3d unity5

我正在尝试检查字符串是否包含列表中的元素。

 // 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;
        }

2 个答案:

答案 0 :(得分:1)

您需要使用:

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

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

答案 1 :(得分:0)

如果您的代码经常进行此类检查(对于“更干净”的读取),您可能有兴趣在字符串上使用扩展名,请参阅下面添加的代码 - 它测试一个扩展类,用于执行相同操作的字符串;但您的生产代码将显示为“MyString.HasAnyElementsOfList(MyListOfStrings)”。

只是一个想法,而不是一个要求 - 希望它有所帮助!快乐的编码! -Darth

[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));
    }
}