2016-06-07 52 views
1

我有例如一个字符串数组:获取从一个String数组整个字符串如果字符串包含一个子

string[] myStrings = {"I want to take this string","This is not interesting"} 

我要检查的字符串数组,如果它包含一个值,然后返回整个字符串包含它。

例子:

var index = Array.FindIndex(stringArray, x => x == stringArray.Contains("want")); 

这个我想返回字符串后:I want to take this string,因为这包含了我搜索的关键词。

我该如何获得这个结果?

回答

10

我将使用LINQ,而不是:

IEnumerable<string> occurences = stringArray.Where(s => s.Contains("want")); 

occurences你有所有 OCCURENCES这确实匹配的完整的字符串。如果你只是对第一次打击感兴趣,你可以在它上面做FirstOrDefault

+0

谢谢,这解决了我的问题。 – drgmak

2

试试这个:

myStrings.FirstOrDefault(str => str.Contains("want")); 

这将返回一个包含wantnull如果没有找到它的第一个字符串。如果你想所有包含want字符串的列表,然后用Where

+1

感谢您的帮助。 – drgmak

3

更换FirstOrDefault您还可以使用Array.FindIndex因为你已经尝试过,但后来用这个:

int index = Array.FindIndex(myStrings, str => str.Contains("want")); 
string desired = index >= 0 ? myStrings[index] : null; 
+0

感谢您的帮助 – drgmak

1
public string GetStringContent() 
{ 
    string[] myStrings = { "I want to take this string", "This is not interesting" }; 
    string strContent=string.Empty; 
    for (int i = 0; i < myStrings.Length; i++) 
    { 
     if (myStrings[i].Contains("want")) 
     { 
      strContent = myStrings[i]; 
      break; 
     } 
    } 
    return strContent; 
} 

试试这个...如果它包含'want',它将返回第一个字符串。

+0

而不是继续循环,如果您只对第一个(或最后一个)感兴趣,则可以简单地返回或中断。 –

+0

是的,应该有休息.. – Avinash

+0

Hows this patrick :) – Avinash

相关问题