如果字符串包含子字符串,则从String数组中获取整个字符串

时间:2016-06-07 12:45:39

标签: c# .net string linq

我有一个字符串数组,例如:

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,因为它包含我搜索的关键字。

我怎样才能达到这个结果?

4 个答案:

答案 0 :(得分:10)

我会改用LINQ:

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

occurences中,你有完整的所有出现的字符串,它们确实匹配。如果您只是对第一次点击感兴趣,可以对其进行FirstOrDefault

答案 1 :(得分:3)

您也可以尝试使用Array.FindIndex,但请使用此功能:

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

答案 2 :(得分:2)

试试这个:

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

如果找不到,则返回包含wantnull的第一个字符串。如果您需要包含want的所有字符串的列表,请将FirstOrDefault替换为Where

答案 3 :(得分:1)

CREATE TABLE BOOK_AUTHOR (
  BookId NUMBER,
  AuthorId NUMBER
);

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