我正在尝试创建一个辅助方法,该方法将检查两个msiexec /l* log.txt /i Z:\NSCP-0.4.3.143-x64.msi INSTALLLOCATION="C:\Program Files\NSClient++" CONFIGURATION_TYPE="ini://C:\Program Files\NSClient++\nsclient.ini" CONF_CAN_CHANGE="TRUE" ALLOWED_HOSTS="10.*.*.*" NSCLIENT_PWD="" CONF_CHECKS="TRUE" CONF_NSCLIENT="TRUE" /quiet
集合在序列中的元素和项目序列方面是否相等。我已经提出了一个解决方案,在功能上似乎可以完成这项工作。我想知道是否有更有效的方法可以在两个IEnumerable<T>
集合之间进行这种比较,这种集合更加清晰简洁。
IEnumerable<T>
答案 0 :(得分:2)
您有两种选择。
使用T
的默认相等比较器:
public static bool SequenceEqual<TSource>(
this IEnumerable<TSource> first,
IEnumerable<TSource> second
使用特定的IEqualityComparer<T>
;当您需要特定的相等逻辑时,类型T
不提供,或者您正在使用一些使用Equals(object other)
的遗留代码并且需要装箱(T
是值类型)。< / p>
public static bool SequenceEqual<TSource>(
this IEnumerable<TSource> first,
IEnumerable<TSource> second,
IEqualityComparer<TSource> comparer