gpt4 book ai didi

c# - 如何检查 .NET 中的 IEnumerable 是否以另一个 IEnumerable 开头?

转载 作者:行者123 更新时间:2023-11-30 13:54:10 25 4
gpt4 key购买 nike

我最近遇到了一个场景,我需要检查一个 IEnumerable<T>以一些 IEnumerable<T> 开头字首。我进行了搜索,但没有找到 StackOverflow 对此的现有答案,因此我决定以下面的答案形式贡献我自己的解决方案。

最佳答案

您的扩展没问题,但您可以使用现有的 Enumerable.Zip + All:

var longerSeq = new[] { "SOME", "IMPORTANT", "WORDS" };
var shorterSeq = new[] { "some", "important" };

bool startsWithCaseInsensitive = longerSeq
.Zip(shorterSeq, (l, s) => string.Equals(l, s, StringComparison.OrdinalIgnoreCase))
.All(b => b); // are all bools true? Returns false on first false

Documentation :

The method merges each element of the first sequence with an element that has the same index in the second sequence. If the sequences do not have the same number of elements, the method merges sequences until it reaches the end of one of them

由于 Zip 使用延迟执行,如果第一个已经产生 false,它不会评估所有。

关于c# - 如何检查 .NET 中的 IEnumerable<T> 是否以另一个 IEnumerable<T> 开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45975775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com