using System;
class MyClass : IComparable<MyClass>, IEquatable<MyClass> {
public int val;
public MyClass(int v) { val = v; } public int compareTo(MyClass otherValue) {
return val - otherValue.val;
}
public bool Equals(MyClass otherValue) {
return val == otherValue.val;
}
public override bool Equals(object obj)
{
if(obj is MyClass)
return Equals((MyClass) obj);
return false;
} public override int GetHashCode()
{
return val.GetHashCode();
}
}class Demo {
public static bool IsIn<T>(T what, T[] obs) where T : IEquatable<T> {
foreach (T v in obs) if (v.Equals(what)) return true;
return false;
}
public static bool Inrange<T>(T what, T[]obs)where T: IComparable<T>{
if (what.CompareTo(obs[0]) < 0 || what.CompareTo(obs[obs.Length - 1]) > 0) return false; return true;
}
static void Main() {
int[] mums = { 1, 2, 3, 4, 5 };
if (IsIn(2, mums)) Console.WriteLine("2 is found"); if (Inrange(2, mums)) Console.WriteLine("2 is in range");
}
}
class MyClass : IComparable<MyClass>, IEquatable<MyClass> {
public int val;
public MyClass(int v) { val = v; } public int compareTo(MyClass otherValue) {
return val - otherValue.val;
}
public bool Equals(MyClass otherValue) {
return val == otherValue.val;
}
public override bool Equals(object obj)
{
if(obj is MyClass)
return Equals((MyClass) obj);
return false;
} public override int GetHashCode()
{
return val.GetHashCode();
}
}class Demo {
public static bool IsIn<T>(T what, T[] obs) where T : IEquatable<T> {
foreach (T v in obs) if (v.Equals(what)) return true;
return false;
}
public static bool Inrange<T>(T what, T[]obs)where T: IComparable<T>{
if (what.CompareTo(obs[0]) < 0 || what.CompareTo(obs[obs.Length - 1]) > 0) return false; return true;
}
static void Main() {
int[] mums = { 1, 2, 3, 4, 5 };
if (IsIn(2, mums)) Console.WriteLine("2 is found"); if (Inrange(2, mums)) Console.WriteLine("2 is in range");
}
}
解决方案 »
- 【小白电脑前坐等高手答复】Gridview下载和删除
- C# winform程序拖动问题
- 关于使用SQLSMO组件还原数据库问题
- 从数据库读取到的数据(性别),如何赋给dropdownlist
- 很急啊
- SQLCommand执行多sql语句失败。请大家帮忙看看
- 怎么获得指定string长度的字符串?把字母当成一个字节,把汉字当成2个字节的那种 c#中
- 不知道什么原因,我的电脑没办法修改机器时间也没办法改网络设置等等都不行,急...
- 使用Workbook和Worksheets需要引用什么
- sql server 自动插入时间 出问题了
- AutoToolboxPopulate=false无效,VS2010的BUG?
- 求个简单的算法
尽量不要手写代码。你可以在接口上点击鼠标右键,使用vs的“重构->实现接口”选项,让vs自动给你生成代码,这样就不会把字母C写成c了。