C# 通用接口,IEnumerable

C# 通用接口,IEnumerable,c#,interface,ienumerable,C#,Interface,Ienumerable,我有以下代码: 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<

我有以下代码:

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;
使用System.Linq;
使用系统文本;
名称空间qq.Mappings
{
接口交换
{
IEnumerable getExcessByMaterialGroup(T[]数据);
无效排序(T[]数据,函数选择器);
}
}

但是我得到了这个错误,“使用泛型类型'System.Collections.generic.IEnumerable'需要'1'类型参数”

没有标准的
IEnumerable
泛型类型接口,只有
IEnumerable
()。
我相信您需要的是
IDictionary
()而不是
IEnumerable
是唯一的方法没有
IEnumerable
,但是您可以使用
IDictionary

这是您的问题,IEnumerable只有一个泛型参数

IEnumerable<string, T>
IEnumerable

您到底想实现什么?

IEnumerable只接受一个类型参数。您应该声明as
IEnumerable

IEnumerable只有一个类型参数,但您已经指定了两个类型参数(字符串,T)。您可能需要以下内容:

IEnumerable<string> getExcessByMaterialGroup(T[] data);
IEnumerable getExcessByMaterialGroup(T[]数据);

如果该方法应该返回字符串的可枚举项。

您正试图从getExcessByMaterialGroup返回
IEnumerable
IEnumerable
只接受一个类型参数,而不是两个(字符串和T)。我的猜测是,您希望返回类似于
IEnumerable
IEnumerable
的内容。如果存在,则不存在双字典样式
IEnumerable


如果你在寻找一个类似键值的关系,请考虑<代码> iQueaby

7个答案,它们或多或少相同;我想你已经得到了答案。:-)对,我在找Inumerable