0

我有一个具有以下签名的方法:

public void SomeMethod(int SomeInt, List<long> SomeListOfLongs)

有一次,我调用了这个方法,代码看起来有点像这样:

int TheInt = 2;
long TheLong1 = 3;
long TheLong2 = 4;

我想创建一个 long 列表并一步调用该方法。我试过这个:

SomeMethod(TheInt, new List<long>(TheLong1, TheLong2));

有没有办法避免直接在调用本身中创建一个新列表?

谢谢。

4

3 回答 3

1

不,您将创建新列表。但这不应该引起任何问题。

如果您可以控制该方法,则可以将签名更改为:

public void SomeMethod(int someInt, params long[] someArrayOfLongs)

然后您就可以使用以下代码调用该方法:

SomeMethod(TheInt, TheLong1, TheLong2);
于 2013-02-08T16:57:52.017 回答
0

实际上,我只是在修改代码并发现这是可能的:

SomeMethod(TheInt, new List<long>() { TheLong1, TheLong2 });
于 2013-02-08T17:09:31.703 回答
0
    private void Form1_Load(object sender, EventArgs e)
    {
        call(1, new List<long> { 1, 2, 3, 4 });
    }
    void call(Int32 i,List<long> l)
    {
        MessageBox.Show((l[0] + l[1] + l[2] + l[3]).ToString());
    }



       i tried this and working properly so use this code too pass the List object.....
于 2013-02-08T17:33:31.190 回答