我有一个字符串数组。我需要检查数组是否有类似“abcd”的内容。如何在C#中实现这一点。我尝试使用
var pathBits = new[] {"abcde ","abcd &"};
var item ="abcd";
var results = Array.FindAll(pathBits, s => s.Equals(item ));
答案 0 :(得分:3)
可能是这样的:
var result = pathBits.Any(y => y.Contains(item));
如果数组包含具有item
之类值的项,那么将为true。如果要选择所有这些值,请使用:
var result = pathBits.Where(y => y.Contains(item));
将为您提供列表中包含值IEnumerable
的{{1}}项。
答案 1 :(得分:1)
当您说'类似“abcd”'时,您的意思是“以”开头“或”包含“?
当前代码只会在pathBits中找到与item完全相同的字符串(“abcd”?)
一般形状很好,但要找到非精确匹配,您需要更改谓词
e.g。
string[] src = new[] { "abcde", "abcd &" };
var results = Array.FindAll<string>(src, name => name.Contains("abcd"));
这也可以使用Linq IEnumerable&lt;&gt;来实现。扩展
e.g。
string[] src = new[] { "abcde", "abcd &" };
var results = src.Where(name => name.Contains("abcd"));
HTH, 艾伦。
答案 2 :(得分:0)
这可能有些用处
string[] pathBits = { "abcde ", "abcd &" };
var item = "abcd";
if (pathBits.Contains(item)) ;
{
}
你不能使用
var pathbits = { "abcde ", "abcd &" };
如果您有任何问题,请告诉我
答案 3 :(得分:0)
这是你想要的吗?
string[] pathBits = { "abcde ", "abcd &", "222" };
var item = "abcd";
var results = Array.FindAll<string>(pathBits, s => s.Contains(item));
结果将有2个项目。
答案 4 :(得分:0)
我不确定你想要什么,但这会得到包含字符串“abcd”的所有数组声明 -
String[] pathBits = {"abcde ","abcd &"};
var item ="abcd";
var results = pathBits.Where(s => s.IndexOf("abcd") > -1);