0

我正在尝试这样做:

public static BatchInfo CreateBatch(IEnumerable<IEnumerable<T>> rows)
{

或者:

public static BatchInfo CreateBatch(IEnumerable<IEnumerable<var>> rows)
{

两者都给出错误。以前,我有这个:

public static BatchInfo CreateBatch(IEnumerable<IEnumerable<string>> rows)
{

很好;除了,现在,我需要rows<string>to更改,<var>因为我将有字符串、日期、整数等。最初,我以为我只会有字符串......

谢谢你的建议。

4

3 回答 3

4
public static BatchInfo CreateBatch<T>(IEnumerable<IEnumerable<T>> rows)
{

我认为您对 . 的想法是正确的IEnumerable<IEnumerable<T>>,但是您还需要使方法声明成为通用的。

于 2013-08-23T17:31:32.873 回答
1
public static BatchInfo CreateBatch(IEnumerable<IEnumerable<object>> rows)
{
于 2013-08-23T17:28:29.780 回答
1

var不是一种类型。它是用于 的关键字,implicit typing仅用于在声明变量时减少冗余。由于它不是一种类型,这意味着您不能将其用作泛型参数。

我猜你正在寻找的是object或者dynamic(仅限.NET 4+)

public static BatchInfo CreateBatch(IEnumerable<IEnumerable<object>> rows)
public static BatchInfo CreateBatch(IEnumerable<IEnumerable<dynamic>> rows)

这两者都可能做你想做的事,但很丑陋,可能会给你带来很多问题。我建议可能为每种类型创建不同的方法,但我不完全确定您要做什么。

通用方法参数也可能起作用

public static BatchInfo CreateBatch<T>(IEnumerable<IEnumerable<T>> rows)
于 2013-08-23T17:30:54.637 回答