【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)))
【結果】