有没有类似的东西
myList.Select(..).Where(...).Assert(x=>x.Length<2).Select(...)...
如果任何项目不满足条件,它会抛出,否则会像 .Select(x=>x)
一样?
最佳答案
您可以很容易地自己编写这个扩展。假设您有一个异常,比如 AssertionFailedException
,这样的事情就可以解决问题。
public static IEnumerable<T> Assert<T>(this IEnumerable<T> items, Func<T, bool> expression)
{
foreach(var item in items)
{
if(!expression(item))
throw new AssertionFailedException();
yield return item;
}
}
关于c# - 如何对长 LINQ 链中可枚举的每一项进行断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58957427/