【C#】【VB.NET】文字列の中にList<string>が含まれるかを判定する

ある文字列の中に、ある文字列リストの一部/全部が含まれるかを判定する手法を調べたのでノートします

参考サイト
stackoverflow.com

C#の場合】

List<string> words = new List<string>() { "bar", "baz" };
string chat1 = "What is foo?";
string chat2 = "What is bar doing?";
string chat3 = "What is bar doing in baz?";

// or
Console.WriteLine("chat 1 is {0}.", words.Any(x => chat1.Contains(x)));
Console.WriteLine("chat 2 is {0}.", words.Any(x => chat2.Contains(x)));
Console.WriteLine("chat 3 is {0}.", words.Any(x => chat3.Contains(x)));

// and
Console.WriteLine("chat 1 is {0}.", words.All(x => chat1.Contains(x)));
Console.WriteLine("chat 2 is {0}.", words.All(x => chat2.Contains(x)));
Console.WriteLine("chat 3 is {0}.", words.All(x => chat3.Contains(x)));

VB.NETの場合】

Dim words As New List(Of String)(New String() {"bar", "baz"})
Dim chat1 As String = "What is foo?"
Dim chat2 As String = "What is bar doing?"
Dim chat3 As String = "What is bar doing in baz?"

' or
Console.WriteLine("chat 1 is {0}.", words.Any(Function(x) chat1.Contains(x)))
Console.WriteLine("chat 2 is {0}.", words.Any(Function(x) chat2.Contains(x)))
Console.WriteLine("chat 3 is {0}.", words.Any(Function(x) chat3.Contains(x)))

' and
Console.WriteLine("chat 1 is {0}.", words.All(Function(x) chat1.Contains(x)))
Console.WriteLine("chat 2 is {0}.", words.All(Function(x) chat2.Contains(x)))
Console.WriteLine("chat 3 is {0}.", words.All(Function(x) chat3.Contains(x)))

【結果】
f:id:ktts:20200719155951p:plain