【问题标题】:C# Check List against part of string针对部分字符串的 C# 检查列表
【发布时间】:2015-11-29 03:12:33
【问题描述】:

我有一个列表,其中包含以下值:

  • 准备行动
  • 使用动作
  • 开始施放动作

我想比较一个字符串来匹配这个列表,并基于它返回一个布尔值。比如:

string compare = "The Manipulator uses action";

为此,我尝试了两种不同的方法,第一种是:

if (mylist.Contains(compare)) { //True }

第二个(使用 Linq):

if (mylist.Any(str => str.Contains(compare))) { //True }

我遇到的问题是这两种方法都与扩展字符串匹配。我的意思是如果 compare == "uses action" 语句返回 true,但如果 compare == "The Manipulator uses action" 语句返回 false。

任何有关解决此问题的帮助将不胜感激! :)

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    我并没有完全遵循您的要求,因此有 2 种不同的解决方案,取决于预期的结果。

    如果您只是想从列表中匹配完全相同的字符串Any 是可行的方法,但您应该使用== 而不是Contains

    if (mylist.Any(str => str == compare)) { //True }
    

    如果您希望扩展字符串也匹配,请使用Contains,但不要调用str.Contains(compare),而是调用compare.Contains(str)

    if (mylist.Any(str => compare.Contains(str))) { //True }
    

    【讨论】:

    • 优秀。 if (mylist.Any(str => compare.Contains(str))) { //True } 符合我的要求!非常感谢。
    • @user1772824 如果答案是您正在寻找的,您应该接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 2022-01-15
    • 2015-06-17
    相关资源
    最近更新 更多