【发布时间】:2017-04-17 04:21:04
【问题描述】:
我有一个非常通用的扩展方法可以在控制台中显示任何类型的列表:
public static void ShowList<T>(this IEnumerable<T> Values)
{
foreach (T item in Values)
{
Console.WriteLine(item);
}
}
当我有string 时,我不能使用这个方法
string text = "test";
text.ShowList();
但对于string,它在我的应用程序中没有意义。
我怎样才能从这个方法中排除string?我读过一些关于
ShowList<T>(this IEnumerable<T> Values): Where != string //doesn't work
【问题讨论】:
-
string的哪些方面使其不合适?你想让new List<char> { 'x', 'y', 'z' }.ShowList()工作吗? -
为什么?两者都是字符序列。你需要考虑是什么让字符串对你来说显然“特别”。
-
哦,它在很多方面都很特别——但不是就它是否可以被视为可读的字符序列而言。
-
顺便说一句,我鼓励您遵循 .NET 命名约定 -
Values应该是values。 (您可能也应该验证它不为空。) -
@Toshi 1985 年的 C++ 被调用,他们希望他们的
char[]s 回来 ;)
标签: c# methods extension-methods