如何创建之间的扩展方法

编程入门 行业动态 更新时间:2024-10-27 02:19:26
本文介绍了如何创建之间的扩展方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个变量,其值在运行时填充.我想使用扩展方法检查该值是否在两个相同的数据类型值之间(例如,最低和最高).

I have a variable whose value is populated at runtime. I want to check whether that value is between two same datatype values (say lowest and highest) or not using an Extension Method.

我想检查一下

int a = 2; //here static but is can be changed at runtime if(a.Between(0,8)) DoSomething(); else DoNothing();

如果a为0或8或它们之间的任何值,则应返回true.

If a is 0 or 8 or any value between them, it should return true.

如果a为(-1或小于-1)或(9或大于9),则它应返回false

If a is (-1 or less) or (9 or greater) then it should return false

我想创建一个扩展方法,例如

i want to create an extension method like

public static bool Between<T1>(this T1 val1, T1 lowest, T1 highest) where ???? { What code to write here???? }

推荐答案

您可以这样做:

public static bool Between<T>(this T actual, T lower, T upper) where T : IComparable<T> { return actual.CompareTo(lower) >= 0 && actual.CompareTo(upper) <= 0; }

参考此处

或者如果要在集合上执行此操作,则可以执行以下操作:

Or if you want to do it on a collection you can do this:

public static IEnumerable<TSource> Between<TSource, TResult> ( this IEnumerable<TSource> source, Func<TSource, TResult> selector, TResult lowest, TResult highest ) where TResult : IComparable<TResult> { return source.OrderBy(selector). SkipWhile(s => selector.Invoke(s).CompareTo(lowest) < 0). TakeWhile(s => selector.Invoke(s).CompareTo(highest) <= 0 ); }

参考此处

用法:

var tenTo40 = list.Between(s => s, 10, 40);

更多推荐

如何创建之间的扩展方法

本文发布于:2023-11-04 00:38:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1556480.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!