这是一种假设方法,允许数组使用单个对象可以使用的函数。这将允许数组使用仅对单个对象可用的方法。我只需要一个在所有类型的数组上运行的泛型方法。此方法将对该数组的各个值运行另一种方法。然后这些单独的值将作为数组返回。这适用于所有类型。如果可能,此方法不应对哪些对象可以使用它有任何约束。重复一遍,代码中的任何位置都没有约束。这可能是另一种形式吗?这在C#中是否合法?
string[] s = new string[] { "hi", "hello", "what's up" }
static void Main(string[] args)
{
string[] newS = s.ArrayTo(() => string.Remove(0,1));
foreach(string str in newS)
Console.WriteLine(str);
}
static class Ext
{
static T[] ArrayTo<T>(this T[] t,Action a)
{
List<T> ret = new List<T>();
foreach(T tOb in t)
{
ret.Add(
//t.a()); This line doesn't work
}
return ret.ToArray();
}
}
输出:i,ello,hat&#39;
答案 0 :(得分:0)
不要使用这个答案,只需使用Select()方法就更简单了。
class Program
{
static void Main(string[] args)
{
string[] s = new string[] { "hi", "hello", "what's up" };
string[] newS = s.ArrayTo<string>(x => x.Remove(0, 1) );
foreach (string str in newS)
Console.WriteLine(str);
}
}
static class Ext
{
public static T[] ArrayTo<T>(this T[] t, Func<T,T> a)
{
List<T> ret = new List<T>();
foreach (T tOb in t)
{
ret.Add(
a(tOb));
}
return ret.ToArray();
}
}