字符串数组。包含?
.NET 2
string[] myStrings = GetMyStrings();
string test = "testValue";
如何验证 myStrings
是否包含 test
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
.NET 2
string[] myStrings = GetMyStrings();
string test = "testValue";
如何验证 myStrings
是否包含 test
?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(10)
在 .NET 2.0 中,如果需要索引,可以执行以下操作:
如果
myStrings
不包含,则
index
将为-1
测试。如果您只想检查是否存在:
In .NET 2.0, you could do the following if you want the index:
index
will be-1
ifmyStrings
does not containtest
.If you merely want to check for existence:
我在这里的页面找到了一个优雅的答案 http:// www.dotnettoad.com/index.php?/archives/10-Array.Contains.html。在 .NET 2.0 中您要做的就是转换为 IList 并调用 Contains 方法。
I have found an elegant answer at the page here http://www.dotnettoad.com/index.php?/archives/10-Array.Contains.html. What you have to do in .NET 2.0 is to cast to IList and call Contains method.
这是一种符合 .NET 2.0 的方法。如果未找到该值,则使用 Array.Find 将返回 null。
C# 方法
如果您需要不区分大小写的匹配,请使用
s.Equals(test, StringComparison.InvariantCultureIgnoreCase)
。编辑:使用 VB.NET 2.0 需要付出更多努力,因为它不支持匿名委托。相反,您需要添加一个
Function
并使用AddressOf
指向它。您需要将testValue
设置为成员或属性,因为它不会传递到谓词方法。在下面的示例中,我使用 Array.Exists。VB.NET 方法
Here's a .NET 2.0 compliant approach. Using
Array.Find
will return null if the value isn't found.C# Approach
If you need a case insensitive match use
s.Equals(test, StringComparison.InvariantCultureIgnoreCase)
.EDIT: with VB.NET 2.0 more effort is required since it doesn't support anonymous delegates. Instead you would need to add a
Function
and useAddressOf
to point to it. You would need to set thetestValue
as a member or property since it will not be passed in to the predicate method. In the following example I useArray.Exists
.VB.NET Approach
您可以使用列表而不是使用静态数组:
Instead of using a static array, you could use a List:
我想我会添加另一个,首先在 .NET 3.5 中提供,我相信:
Thought I would add another to the mix, first available in .NET 3.5, I believe:
这将是有史以来最好的表现。 :P
And this will have the best performance ever. :P
msdn 上有几乎完全相同的问题。
在字符串数组中查找字符串
正如其他人所说,你确实有两个选择:
1)使用列表更容易检查
2)循环遍历数组以查找字符串
Here is almost the exact same question on msdn.
Find String in String Array
As others have said you really have two options:
1) Use a list for easier checking
2) Loop through your array to find the string
您可以按如下所述使用 Array.BinarySearch。
you can use Array.BinarySearch as described below.
怎么样:
这应该适用于.Net 2.0 和 VB.Net。
How about this:
This should work for .Net 2.0 and VB.Net.
我假设您想检查数组中的任何元素是否包含特定值(测试)。如果是这样,您想构造一个简单的循环。事实上,我认为你应该 点击此处。
I assume you want to check if any elements in your array contains a certain value (test). If so you want to construct a simple loop. In fact I think you should click here.