using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class Test
{
public static void Main()
{
var list = new List<string> {"abcdef", "abc", "ab", "cd ab"};
var searchForList = new List<string> { "ab", "abc", "ab cd" };
foreach(var searchFor in searchForList)
{
// word must contain all the string in search words
var result = list.Where (w => searchFor.Split().All (s => w.Contains(s)));
Console.WriteLine(string.Format("Searching for \"{0}\":", searchFor));
foreach(var s in result)
{
Console.WriteLine(s);
}
Console.WriteLine();
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0OwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBsaXN0ID0gbmV3IExpc3Q8c3RyaW5nPiB7ImFiY2RlZiIsICJhYmMiLCAiYWIiLCAiY2QgYWIifTsKCQkKCQl2YXIgc2VhcmNoRm9yTGlzdCA9IG5ldyBMaXN0PHN0cmluZz4geyAiYWIiLCAiYWJjIiwgImFiIGNkIiB9OwoJCQoJCWZvcmVhY2godmFyIHNlYXJjaEZvciBpbiBzZWFyY2hGb3JMaXN0KQoJCXsKCQkJLy8gd29yZCBtdXN0IGNvbnRhaW4gYWxsIHRoZSBzdHJpbmcgaW4gc2VhcmNoIHdvcmRzCgkJCXZhciByZXN1bHQgPSBsaXN0LldoZXJlICh3ID0+IHNlYXJjaEZvci5TcGxpdCgpLkFsbCAocyA9PiB3LkNvbnRhaW5zKHMpKSk7CgkJCUNvbnNvbGUuV3JpdGVMaW5lKHN0cmluZy5Gb3JtYXQoIlNlYXJjaGluZyBmb3IgXCJ7MH1cIjoiLCBzZWFyY2hGb3IpKTsKCQkJZm9yZWFjaCh2YXIgcyBpbiByZXN1bHQpCgkJCXsKCQkJCUNvbnNvbGUuV3JpdGVMaW5lKHMpOwoJCQl9CgkJCUNvbnNvbGUuV3JpdGVMaW5lKCk7CgkJfQoJfQp9