C# 数组子集获取

标签 c# algorithm arrays search

我有一个字节数组,我想确定这个字节数组的内容是否作为连续序列存在于另一个更大的数组中。最简单的方法是什么?

最佳答案

天真的方法是:

public static bool IsSubsetOf(byte[] set, byte[] subset) {
    for(int i = 0; i < set.Length && i + subset.Length <= set.Length; ++i)
        if (set.Skip(i).Take(subset.Length).SequenceEqual(subset))
            return true;
    return false;
}

为了更有效的方法,您可以考虑更高级的字符串匹配算法,例如 KMP .

关于C# 数组子集获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1020438/

相关文章:

c# - ASP.NET MVC 中的异步 GET/POST 和操作名称冲突

java - 抽象算法 : String/Byte Comparison/Diff

algorithm - 如何制作MFCC算法?

php - 特殊图中的最重路径(PHP)

c# - 当 ComboBox 中输入垃圾时,将 SelectedValue 设置为 0

c# - 为 HttpRequestMessage.Properties 定义的字典键 "MS_HttpContext"在哪里?

c# - 在 ASP.NET MVC 3 中使用枚举

javascript - 如何从特定记录访问对象中的嵌套数组?

javascript - 如何在 Svelte 中拼接后更新数组?

c++ - 从数组中减去一个特定的数字