c# - 具有通用集合参数的方法

标签 c# .net generics

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

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

"(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 .

关于c# - 具有通用集合参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9654936/

相关文章:

C# 垃圾收集事件根

.net - 对 yourkit .NET 分析器的看法?

c# - Double.TryParse 或 Convert.ToDouble - 哪个更快更安全?

c# - 当委托(delegate)传递到另一个 AppDomain 时,是否可以将委托(delegate)编码为代理?

database - 从数据库获取数据并填充数组的Golang抽象函数

c# - 该类型必须是引用类型才能将其用作泛型类型或方法中的参数 'T'

c# - 运行时找不到方法

c# - 如何在我的 asp.net web 应用程序中调用嵌入到 dll 中的 javascript 文件?

c# - 如何在 ASP.NET webservice 中执行 SQL 事务异步

c# - 中的逆变泛型修饰符