将正常项和数组项传递给params函数C#

时间:2014-03-08 07:40:06

标签: c# params datarow

我想向表添加新行,但是通过传递正常变量和数组变量,如下面的示例

int value1=1;

int value2=2;

int[] numbers = new int[] {3, 4, 5};

DataTable1.Rows.Add(value1,value2,numbers)  // numbers as single items so the row will contain 5 values (1,2,3,4,5) 

我应该构建一个新数组并传递它吗?或者有一个代码咒语来做到这一点? 感谢

2 个答案:

答案 0 :(得分:0)

不确定这个Int数组会发生什么,但是,请查看this link,它可以存储您想要的数据。只需要做一些棘手的事情。

答案 1 :(得分:0)

这个辅助方法将创建一个从1到5的列表:

public IEnumerable<T> GetItemsAndCollectionsAsItems<T>(params object[] itemsAndCollections)
{
    var result = new List<T>();
    foreach (var itemOrCollection in itemsAndCollections)
    {
        var collection = itemOrCollection as IEnumerable<T>;
        if (collection == null)
        {
            result.Add((T)itemOrCollection);
        }
        else
        {
            result.AddRange(collection);
        }
    }
    return result;
}

你这么称呼它:

int value1 = 1;
int value2 = 2;
int[] numbers = new int[] { 3, 4, 5 };

// Returns 1,2,3,4,5
IEnumerable<int> values = GetItemsAndCollectionsAsItems<int>(value1, value2, numbers);