繁体   English   中英

比较字符串和数组c#

[英]Comparing strings and arrays c#

如果字符串包含数组的任何元素,我将如何创建一个返回true的函数?

像这样的东西:

string str = "hi how are you";
string[] words = {"hi", "hey", "hello"};

会回归true

你可以这样做:

var array = new[] {"quick", "brown", "fox"};
var myString = "I love foxes.";
if (array.Any(s => myStr.IndexOf(s) >= 0)) {
    // One of the elements is there
}

这种方法不需要该元素是一个完整的字(即上述片段将返回true ,即使单词"fox"是不是作为一个单词目前有)。

您可以拆分字符串并使用Enumerable.Intersect 对于长字符串,它比Any + IndexOf更有效:

var any = words.Intersect(str.Split()).Any();

不需要循环,这是一个更快的方法:

   string [] arr = {"One","Two","Three"};
   var target = "One";
   var results = Array.FindAll(arr, s => s.Equals(target));

我想你需要检查一个字符串是否包含在其他字符串中(我不知道性能)

foreach(string strLine in words)
 {
    if(strLine.Contains(str)) //or str.Contains(strLine)
    {
      return true;
    }
 }
 //return false;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM