c# - 如何用数组搜索数组?

标签 c# .net vb.net arrays

我有 2 个字节数组:

    Dim A() As Byte = {1, 2, 3, 4, 5, 6, 7, 8, 9}
    Dim B() As Byte = {5, 6, 7}

现在我想找到完整的B 在A 中的出现。我试过 Array.IndexOf(A, B) 没有运气。有没有一种无需使用任何循环即可按数组搜索数组的简单方法?

它应该按照与 B() 中相同的顺序找到 5,6,7 的索引(位置)。 如果 A() 包含 {1,2,3,4,7,6,5,9} 它应该返回 false 或 -1,因为它们的顺序不同。

最佳答案

下面的 Linq 语句将给出 IEnumerable<int>包含 b 在 a 中的位置(如果没有出现则为空集):

Enumerable
    .Range( 0, 1 + a.Length - b.Length )
    .Where( i => a.Skip(i).Take(b.Length).SequenceEqual(b) );

我不知道如何转换为 VB.NET。

关于c# - 如何用数组搜索数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7345159/

相关文章:

c# - 如何从 url 中删除查询字符串参数?

c# - 在 Visual Studio 中移动 C# 项目的中间目录

c# - 具有多个背景图像的全景

c# - 将 .net 应用程序迁移到 Windows 7(64 位)时需要注意什么

.net - MySQL Connector/NET 连接每个连接多个 DataReader?

c# - 将 C# 代码转换为 VB.net

mysql - VB.net 参数化查询不需要的 '\'

c# - MVC和MVVM框架的ViewModel部分位于哪一层?

c# - 我是否应该在 Visual Studio 中使用类库避免 'chained' 引用?

.net - 获取 DataGridView 中所示的字符串