具有泛型集合参数的方法

本文关键字:方法 参数 集合 泛型 | 更新日期: 2023-09-27 18:27:28

我有一个方法,它应该接受任何类型(例如List<int>List<string>)的集合(可能是IEnumerable<T>List<T>)。

在方法内部,我需要迭代集合,每个元素都转换为字符串,并将它们一起添加到一个最终字符串中,比如:

"(12, 123, 22)"

问题是如何定义参数集合可以是任何类型。我想这是关于泛型的东西,但我对它了解不多

然而,我认为方法定义应该是这样的:

public string myMethod(List<T> list) { }

但是,编译器不允许这样做。你能告诉我正确的语法吗?

具有泛型集合参数的方法

class A
{
    public string myMethod<T>(List<T> list) { }
}

class B<T>
{
    public string myMethod(List<T> list) { }
}

您可能想要使用IEnumerable<T>,因为您只需要对序列进行枚举。


使用内置功能可以实现相同的功能:

IEnumerable<X> input = new List<X> { new X(), new X() };
IEnumerable<string> s = list.Select(x => x.ToString());
string result = String.Join(", ", s); // "x, x"

请参阅MSDN。