代码之家  ›  专栏  ›  技术社区  ›  Pure.Krome

如何使用Linq确定此字符串是否以值结尾(来自集合)?

  •  7
  • Pure.Krome  · 技术社区  · 15 年前

    我想知道一个字符串值 EndsWith 另一个字符串。此“其他字符串”是集合中的值。我正尝试将其作为字符串的扩展方法。

    如。

    var collection = string[] { "ny", "er", "ty" };
    "Johnny".EndsWith(collection); // returns true.
    "Fred".EndsWith(collection); // returns false.
    
    3 回复  |  直到 7 年前
        1
  •  12
  •   Pierre-Alain Vigeant    7 年前
    var collection = new string[] { "ny", "er", "ty" };
    
    var doesEnd = collection.Any("Johnny".EndsWith);
    var doesNotEnd = collection.Any("Fred".EndsWith);
    

    您可以创建一个字符串扩展来隐藏 Any

    public static bool EndsWith(this string value, params string[] values)
    {
        return values.Any(value.EndsWith);
    }
    
    var isValid = "Johnny".EndsWith("ny", "er", "ty");
    
        2
  •  0
  •   Andrew Hare    15 年前

    .NET框架没有内置的任何内容,但这里有一个扩展方法可以实现以下功能:

    public static Boolean EndsWith(this String source, IEnumerable<String> suffixes)
    {
        if (String.IsNullOrEmpty(source)) return false;
        if (suffixes == null) return false;
    
        foreach (String suffix in suffixes)
            if (source.EndsWith(suffix))
                return true;
    
        return false;
    }
    
        3
  •  0
  •   Preet Sangha    15 年前
    public static class Ex{
     public static bool EndsWith(this string item, IEnumerable<string> list){
       foreach(string s in list) {
        if(item.EndsWith(s) return true;
       }
       return false;
     }
    }