【问题标题】:How to find if part of string belongs to a List如何查找字符串的一部分是否属于列表
【发布时间】:2018-03-19 22:09:49
【问题描述】:

我的清单如下:

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

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

string strOutput = "Project1:Toyota:Corolla";

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

我想:

  • return true 当 strOutput = "Project1:Toyota:Corolla"(因为 Toyota 在列表中)
  • 返回 false 当 strOutput = "Project1:Foo:Corolla" 时(因为 Foo 不在列表中)

【问题讨论】:

  • 我先将字符串解析为一个对象(或至少一个元组),然后使用该对象的属性进行检查

标签: c# string list linq


【解决方案1】:

使用带有谓词的Any() 方法来检查carMake 列表中的任何字符串是否包含在strOutput 中:

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

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

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

【讨论】:

  • 为了准确,也可以用“:”分割,比较car make array中的第二个字符串
  • 确实可以。我将编辑我的答案并将其包含在内。
【解决方案2】:
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);

【讨论】:

    猜你喜欢
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2012-11-23
    • 1970-01-01
    相关资源
    最近更新 更多