测试字符串值是否包含在字符串数组中
test if string value is contained in array of strings
你好,我有一个单词列表,如果找到这个单词,我想从我的数组中删除值
private static string[] WordList = { "Example No", "Name", "Client ID"};
var listToTest = new[] { "ME 0.3", "Example No.: 1243", "Name.:"};
var newList= new List<string>();
foreach (var value in listToTest)
{
if (!WordList.Any(x => x.Contains(value)))
{
newList.Add(value);
}
}
return newList.ToArray();
我的测试return我只想要它的所有值return “ME 0.3”
!WordList.Any(x => x.Contains(value))
将 return true
如果 WordList
中没有元素包含 value
和 false
如果至少有一个元素WordList
包含 value
.
因此您的代码将 return 一个 listToTest
元素数组,WordList
中没有元素包含它们,但正如您所说,您想要一个 [= 元素数组19=] 它们不包含 WordList
的元素。所以在 ... x.Contains(value)))
中将 x
和 value
相互替换:
private static string[] WordList = { "Example No", "Name", "Client ID"};
var listToTest = new[] { "ME 0.3", "Example No.: 1243", "Name.:"};
var newList= new List<string>();
foreach (var value in listToTest)
{
if (!WordList.Any(x => value.Contains(x)))
{
newList.Add(value);
}
}
return newList.ToArray();
顺便说一句,有一个更简洁的方法:
var result = listToTest.Where(x => !WordList.Any(y => x.Contains(y))).ToArray();
// Usage:
foreach (var s in result)
Console.WriteLine(s);
// Output:
// ME 0.3
描述:
Enumerable.Where
方法:根据谓词过滤一系列值。
Enumerable.Any
方法:判断序列中的任意元素是否存在或是否满足条件。
Enumerable.ToArray
方法:从 IEnumerable 创建数组。
String.Contains(String)
方法:Returns一个值,指示指定的子字符串是否出现在该字符串中。
不是最有效的,但有效。
newList = listToTest.Where((x) =>
{
return WordList.Where(x2 => x.IndexOf(x2) != -1).Count() == 0;
}).ToList();
你好,我有一个单词列表,如果找到这个单词,我想从我的数组中删除值
private static string[] WordList = { "Example No", "Name", "Client ID"};
var listToTest = new[] { "ME 0.3", "Example No.: 1243", "Name.:"};
var newList= new List<string>();
foreach (var value in listToTest)
{
if (!WordList.Any(x => x.Contains(value)))
{
newList.Add(value);
}
}
return newList.ToArray();
我的测试return我只想要它的所有值return “ME 0.3”
!WordList.Any(x => x.Contains(value))
将 return true
如果 WordList
中没有元素包含 value
和 false
如果至少有一个元素WordList
包含 value
.
因此您的代码将 return 一个 listToTest
元素数组,WordList
中没有元素包含它们,但正如您所说,您想要一个 [= 元素数组19=] 它们不包含 WordList
的元素。所以在 ... x.Contains(value)))
中将 x
和 value
相互替换:
private static string[] WordList = { "Example No", "Name", "Client ID"};
var listToTest = new[] { "ME 0.3", "Example No.: 1243", "Name.:"};
var newList= new List<string>();
foreach (var value in listToTest)
{
if (!WordList.Any(x => value.Contains(x)))
{
newList.Add(value);
}
}
return newList.ToArray();
顺便说一句,有一个更简洁的方法:
var result = listToTest.Where(x => !WordList.Any(y => x.Contains(y))).ToArray();
// Usage:
foreach (var s in result)
Console.WriteLine(s);
// Output:
// ME 0.3
描述:
Enumerable.Where
方法:根据谓词过滤一系列值。Enumerable.Any
方法:判断序列中的任意元素是否存在或是否满足条件。Enumerable.ToArray
方法:从 IEnumerable 创建数组。String.Contains(String)
方法:Returns一个值,指示指定的子字符串是否出现在该字符串中。
不是最有效的,但有效。
newList = listToTest.Where((x) =>
{
return WordList.Where(x2 => x.IndexOf(x2) != -1).Count() == 0;
}).ToList();