检查数组是否有像我的文本

时间:2011-10-18 09:14:01

标签: c# asp.net

我有一个字符串数组。我需要检查数组是否有类似“abcd”的内容。如何在C#中实现这一点。我尝试使用

var pathBits = new[] {"abcde ","abcd &"};
var item ="abcd";
var results = Array.FindAll(pathBits, s => s.Equals(item )); 

5 个答案:

答案 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);