通用接口,IEnumerable
本文关键字:IEnumerable 接口 | 更新日期: 2023-09-27 18:09:56
我有以下代码:
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'类型参数"
没有标准的IEnumerable<T, K>
泛型接口,只有IEnumerable<T>
(MSDN)。我相信你需要IDictionary<string, T>
(MSDN)代替
您正试图从getExcessByMaterialGroup返回IEnumerable<string, T>
。IEnumerable<T>
只接受一个类型参数,而不是两个(String和T)。我猜您想返回类似IEnumerable<KeyValuePair<String, T>>
这是你的问题,IEnumerable只有1个泛型参数。
IEnumerable<string, T>
你到底想要完成什么?
IEnumerable只接受一个类型参数。您应该将其声明为IEnumerable<T>
。
IEnumerable只有一个类型参数,但是您指定了两个(string, T)。您可能想要这样的内容:
IEnumerable<string> getExcessByMaterialGroup(T[] data);
存在IEnumerable<T>
,不存在双字典样式的IEnumerable<T, U>
。
如果您正在寻找类似于KeyValue的关系,请考虑IEnumerable<KeyValuePair<string, T>>
IEnumerable<T>
是唯一的方法,没有IEnumerable<T,T>
,但您可以使用IDictionary<T,T>