gpt4 book ai didi

c# - TakeWhile,但也获取停止它的元素

转载 作者:可可西里 更新时间:2023-11-01 03:00:39 29 4
gpt4 key购买 nike

我想在 LINQ to Objects 上使用 LINQ TakeWhile 函数。但是,我还需要知道“破坏”函数的第一个元素,即条件不成立的第一个元素。

是否有一个函数可以获取所有不匹配的对象以及第一个匹配的对象?

例如,给定集合{1, 2, 3, 4, 5, 6, 7, 8}

mySet.MagicTakeWhile(x => x != 5);

=> {1, 2, 3, 4, 5}

最佳答案

我想你可以使用 SkipWhile , 然后取第一个元素。

var elementThatBrokeIt = data.SkipWhile(x => x.SomeThing).Take(1);

更新

如果你想要一个单一的扩展方法,你可以使用如下:

public static IEnumerable<T> MagicTakeWhile<T>(this IEnumerable<T> data, Func<T, bool> predicate) {
foreach (var item in data) {
yield return item;
if (!predicate(item))
break;
}
}

关于c# - TakeWhile,但也获取停止它的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883469/

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