我有以下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace QQQ.Mappings
{
interface IExcess<T>
{
IEnumerable<string, T> getExcessByMaterialGroup(T[] data);
void Sort<TKey>(T[] data, Func<T, TKey> selector);
}
}
但我收到此错误,“使用泛型类型'System.Collections.Generic.IEnumerable'需要'1'类型参数”
答案 0 :(得分:7)
答案 1 :(得分:1)
IEnumerable<T>
是唯一没有IEnumerable<T,T>
的方法,但您可以使用IDictionary<T,T>
答案 2 :(得分:1)
这是你的问题,IEnumerable只有一个通用参数。
IEnumerable<string, T>
你到底想要完成什么?
答案 3 :(得分:1)
IEnumerable只接受单个类型的参数。您应该将其声明为IEnumerable<T>
。
答案 4 :(得分:1)
IEnumerable只有一个类型参数,但你指定了两个(string,T)。你可能想要这样的东西:
IEnumerable<string> getExcessByMaterialGroup(T[] data);
如果该方法应该返回一个可枚举的字符串。
答案 5 :(得分:1)
您正在尝试从getExcessByMaterialGroup返回IEnumerable<string, T>
。 IEnumerable<T>
只接受一个类型参数,而不是两个(String和T)。我的猜测是你要返回IEnumerable<KeyValuePair<String, T>>
答案 6 :(得分:1)
IEnumerable<T>
存在,没有双字典样式IEnumerable<T, U>
。
如果您正在寻找类似KeyValue的关系,请考虑IEnumerable<KeyValuePair<string, T>>