如何查找字符串的一部分是否属于List

时间:2018-03-19 22:09:50

标签: c# string list linq

我的列表如下:

 readonly List<string> carMake = new List<string>
        {
            "Toyota",
            "Honda",
            "Audi",
            "Tesla"
        };

我在运行时有一个字符串,如下所示:

string strOutput = "Project1:Toyota:Corolla";

现在,我想使用strOutput和carMake来确保字符串是正确的汽车。我如何使用Linq做到这一点?

我想:

  • 返回true 当strOutput =&#34; Project1:Toyota:Corolla&#34; (正如丰田名单所示)
  • 当strOutput =&#34; Project1:Foo:Corolla&#34;
  • 返回false (因为Foo不在列表中)

2 个答案:

答案 0 :(得分:1)

Any()方法与谓词一起使用,以检查carMake列表中是否包含strOutput列表中的任何字符串:

return carMake.Any(i => strOutput.Contains(i));

或者,如果您的运行时字符串始终采用该格式,则可以按“:”拆分并与中间的值进行比较:

string runtimeValue = strOutput.Split(':')[1];
return carMake.Contains(runtimeValue);

答案 1 :(得分:0)

List<string> carMake = new List<string> { "Toyota", "Honda", "Audi", "Tesla" };
string strOutput = "Project1:Toyota:Corolla";

string carBrand = strOutput.Split(':')[1];

bool result = carMake.Contains(carBrand);