[Solved] Check whether a string is in a list at any order in C#


This works for me:

    Func<string, string[]> split =
        x => x.Split(new [] { '#' }, StringSplitOptions.RemoveEmptyEntries);

    if (XAll.Any(x => split(x).Intersect(split(S)).Count() == split(S).Count()))
    {
        Console.WriteLine("Your String is exist");
    }

Now, depending on you you want to handle duplicates, this might even be a better solution:

    Func<string, HashSet<string>> split =
        x => new HashSet<string>(x.Split(
                    new [] { '#' },
                    StringSplitOptions.RemoveEmptyEntries));

    if (XAll.Any(x => split(S).IsSubsetOf(split(x))))
    {
        Console.WriteLine("Your String is exist");
    }

This second approach uses pure set theory so it strips duplicates.

4

solved Check whether a string is in a list at any order in C#