通用接口,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

没有标准的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>

相关文章: