C#:具有IEnumerable <type>作为参数的方法。什么是有效输入?

时间:2017-02-24 15:04:21

标签: c# types ienumerable

我正在尝试为我的方法Pairwise定义一个有效的输入。 Pairwise采用IEnumerable参数,我无法弄清楚究竟是什么。我已经尝试了很多东西但却永远无法真正实现。

public delegate void PairwiseDel(Type left, Type right);

public static void Pairwise(IEnumerable<Type> col, PairwiseDel del)
{
   // stuff happens here which passes pairs from col to del
}

有人可以告诉并说明我的方法的有效输入是什么吗?

2 个答案:

答案 0 :(得分:1)

IEnumerable<T>是.NET库中非常重要的接口。它表示描述类型T的元素序列的抽象。

这个通用接口有多个实现:

  • 内置一维数组T[]实施IEnumerable<T>
  • 所有通用.NET集合都实现IEnumerable<T>
  • 使用yield return生成IEnumerable<T>
  • 的方法
  • .NET LINQ库中的多个方法都接受并返回IEnumerable<T>

如果您想测试您的方法,请将其传递给数组Type[]

var items = new Type[] { typeof(int), typeof(string), typeof(long) };
Pairwise(items, (a, b) => {
    Console.WriteLine("A={0}, B={1}", a.Name, b.Name);
});

答案 1 :(得分:0)

这将是一个有效的输入:

var collection = new List<Type>();
collection.Add(typeof(string));
collection.Add(typeof(int));

PairWise(collection, YourDelegateHere);