如果您正在谈论内存中的集合,其中比较很简单,您可以使用类似的东西(但要注意,集合会迭代多次!):
public static bool Contains<T>(this IEnumerable<T> data, IEnumerable<T> otherData) {
    var dataLength = data.Count();
    var otherDataLength = otherData.Count();
    if (dataLength < otherDataLength)
        return false;
    return Enumerable.Range(0, dataLength - otherDataLength + 1)
        .Any(skip => data.Skip(skip).Take(otherDataLength).SequenceEqual(otherData));
}
并像这样使用它:
var a1 = new List<int> { 1, 2, 3, 4, 5 };
var a2 = new List<int> { 2, 3, 4};
var a3 = new List<int> { 4, 3, 2};
if (a1.Contains(a2)) {
    // is hit
}
if (a1.Contains(a3)) {
    // is not hit
}
| 归档时间: | 
 | 
| 查看次数: | 1021 次 | 
| 最近记录: |