我有这样一段代码:
using System.Collections.Generic;
using System.Linq;
namespace PricingCoefficientService.Extensions
{
public static class IntExt
{
public static bool IsIn(this int integer, IEnumerable<int> collectionOfIntegers)
{
return collectionOfIntegers.Contains(integer);
}
}
}
它是一个扩展int的扩展方法。我相信它的功能是显而易见的。
但是如果我不想让它变得通用以使其可用于每个值类型或对象呢?
任何想法?
谢谢
答案 0 :(得分:2)
只需将方法设为通用
即可public static bool IsIn<T>(this T value, IEnumerable<T> collection)
{
if (collection == null)
{
throw new ArgumentNullException("collection");
}
return collection.Contains(value);
}
答案 1 :(得分:1)
试试这段代码:
public static bool IsIn<T>(this T generic, IEnumerable<T> collection)
{
if(collection==null || collection.Count()==0) return false; // just for sure
return collection.Contains(generic);
}
它由T
输入,可以是任何类型,现在你可以写:
var list = new List<double>() {1,2,3,4};
double a = 1;
bool isIn = a.IsIn(list);
答案 2 :(得分:1)
如果需要仅值类型
public static bool IsIn(this ValueType integer, IEnumerable<int> collectionOfIntegers)
{
....
}